package com.kt.event.content.biz.usecase.out;

import com.kt.event.content.biz.domain.ImageStyle;
import com.kt.event.content.biz.domain.Platform;
import com.kt.event.content.biz.dto.RedisImageData;

import java.util.List;

/**
 * 이미지 저장 Port (Output Port)
 */
public interface ImageWriter {

    /**
     * 단일 이미지 저장
     *
     * @param imageData 이미지 데이터
     * @param ttlSeconds TTL (초 단위)
     */
    void saveImage(RedisImageData imageData, long ttlSeconds);

    /**
     * 여러 이미지 저장
     *
     * @param eventId 이벤트 초안 ID
     * @param images 이미지 목록
     * @param ttlSeconds TTL (초 단위)
     */
    void saveImages(String eventId, List<RedisImageData> images, long ttlSeconds);

    /**
     * 이미지 삭제
     *
     * @param eventId 이벤트 초안 ID
     * @param style 이미지 스타일
     * @param platform 플랫폼
     */
    void deleteImage(String eventId, ImageStyle style, Platform platform);
}
