package com.unicorn.hgzero.meeting.biz.usecase.out;

import com.unicorn.hgzero.meeting.biz.domain.Minutes;

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

/**
 * 회의록 조회 Gateway Interface (Out Port)
 */
public interface MinutesReader {

    /**
     * ID로 회의록 조회
     */
    Optional<Minutes> findById(String minutesId);

    /**
     * 회의 ID로 회의록 목록 조회
     */
    List<Minutes> findByMeetingId(String meetingId);

    /**
     * 회의 ID로 최신 회의록 조회
     */
    Optional<Minutes> findLatestByMeetingId(String meetingId);

    /**
     * 작성자 ID로 회의록 목록 조회
     */
    List<Minutes> findByCreatedBy(String createdBy);

    /**
     * 상태로 회의록 목록 조회
     */
    List<Minutes> findByStatus(String status);

    /**
     * 확정자 ID로 회의록 목록 조회
     */
    List<Minutes> findByFinalizedBy(String finalizedBy);
}
