package com.saas.tenant.repository;

import com.saas.tenant.entity.Availability;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

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

@Repository
public interface AvailabilityRepository extends JpaRepository<Availability, Long> {

    List<Availability> findByDoctorId(Long doctorId);

    @Query("SELECT a FROM Availability a WHERE a.doctorId = :doctorId AND " +
            "((a.startTime <= :end AND a.endTime >= :start))")
    List<Availability> findOverlappingAvailabilities(@Param("doctorId") Long doctorId,
            @Param("start") LocalDateTime start,
            @Param("end") LocalDateTime end);
}
