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

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

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

/**
 * 안건별 회의록 섹션 조회 인터페이스
 */
public interface AgendaSectionReader {

    /**
     * 회의 ID로 안건별 섹션 조회
     *
     * @param meetingId 회의 ID
     * @return 안건별 섹션 목록 (안건 번호 순 정렬)
     */
    List<AgendaSection> findByMeetingId(String meetingId);

    /**
     * 회의록 ID로 안건별 섹션 조회
     *
     * @param minutesId 회의록 ID
     * @return 안건별 섹션 목록
     */
    List<AgendaSection> findByMinutesId(String minutesId);

    /**
     * 섹션 ID로 조회
     *
     * @param id 섹션 ID
     * @return 안건 섹션
     */
    Optional<AgendaSection> findById(String id);

    /**
     * 회의 ID와 안건 번호로 섹션 조회
     *
     * @param meetingId 회의 ID
     * @param agendaNumber 안건 번호
     * @return 안건 섹션
     */
    Optional<AgendaSection> findByMeetingIdAndAgendaNumber(String meetingId, Integer agendaNumber);
}
