Interface IAppointmentRepository
- Namespace
- Core.CliniCore.Repositories
- Assembly
- Core.CliniCore.dll
Repository interface for appointment (time interval) operations. Extends generic repository with scheduling-specific queries.
public interface IAppointmentRepository : IRepository<AppointmentTimeInterval>
- Inherited Members
Methods
GetAvailableSlots(Guid, DateTime, TimeSpan)
Gets available time slots for a physician on a given date
IEnumerable<(DateTime Start, DateTime End)> GetAvailableSlots(Guid physicianId, DateTime date, TimeSpan duration)
Parameters
Returns
GetByDate(DateTime)
Gets all appointments for a specific date
IEnumerable<AppointmentTimeInterval> GetByDate(DateTime date)
Parameters
dateDateTime
Returns
GetByPatient(Guid)
Gets all appointments for a specific patient
IEnumerable<AppointmentTimeInterval> GetByPatient(Guid patientId)
Parameters
patientIdGuid
Returns
GetByPhysician(Guid)
Gets all appointments for a specific physician
IEnumerable<AppointmentTimeInterval> GetByPhysician(Guid physicianId)
Parameters
physicianIdGuid
Returns
GetByStatus(AppointmentStatus)
Gets appointments filtered by status
IEnumerable<AppointmentTimeInterval> GetByStatus(AppointmentStatus status)
Parameters
statusAppointmentStatus
Returns
HasConflict(Guid, DateTime, TimeSpan, Guid?)
Checks if a proposed appointment would conflict with existing ones
bool HasConflict(Guid physicianId, DateTime start, TimeSpan duration, Guid? excludeAppointmentId = null)