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

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

import java.time.LocalDateTime;
import java.util.List;

/**
 * 회의 조회 UseCase
 */
public interface GetMeetingUseCase {

    /**
     * ID로 회의 조회
     */
    Meeting getMeeting(String meetingId);

    /**
     * 주최자 ID로 회의 목록 조회
     */
    List<Meeting> getMeetingsByOrganizer(String organizerId);

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

    /**
     * 일정 시간 범위로 회의 목록 조회
     */
    List<Meeting> getMeetingsByScheduledTime(LocalDateTime startTime, LocalDateTime endTime);

    /**
     * 주최자 ID와 상태로 회의 목록 조회
     */
    List<Meeting> getMeetingsByOrganizerAndStatus(String organizerId, String status);
}
