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

import com.kt.event.content.biz.domain.Content;
import com.kt.event.content.biz.domain.GeneratedImage;

import java.util.List;
import java.util.Optional;

/**
 * 콘텐츠 조회 포트
 */
public interface ContentReader {

    /**
     * 이벤트 초안 ID로 콘텐츠 조회 (이미지 목록 포함)
     *
     * @param eventDraftId 이벤트 초안 ID
     * @return 콘텐츠 도메인 모델
     */
    Optional<Content> findByEventDraftIdWithImages(Long eventDraftId);

    /**
     * 이미지 ID로 이미지 조회
     *
     * @param imageId 이미지 ID
     * @return 이미지 도메인 모델
     */
    Optional<GeneratedImage> findImageById(Long imageId);

    /**
     * 이벤트 초안 ID로 이미지 목록 조회
     *
     * @param eventDraftId 이벤트 초안 ID
     * @return 이미지 도메인 모델 목록
     */
    List<GeneratedImage> findImagesByEventDraftId(Long eventDraftId);
}
