package com.unicorn.hgzero.meeting.infra.gateway.repository;

import com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

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

/**
 * 회의 JPA Repository
 */
@Repository
public interface MeetingJpaRepository extends JpaRepository<MeetingEntity, String> {

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

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

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

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

    /**
     * 템플릿 ID로 회의 목록 조회
     */
    List<MeetingEntity> findByTemplateId(String templateId);
}
