using Application.Endpoints.Appointments; using Domain.Entities; using MongoDB.Driver; namespace Application.Services.Database.MongoDB; public interface IAppointmentsMongoDbService { IMongoCollection GetCollection(); Task> FindAsync(List<(string FieldName, string Value)> criteria, CancellationToken token); Task AddAsync(T document, CancellationToken token); Task ModifyAsync(string keyField, string keyValue, T document, CancellationToken token); Task DeleteAsync(string keyField, string keyValue, CancellationToken token); Task DeleteByIdAsync(string id, CancellationToken token); Task IsAppointmentUnique(AppointmentInformation request, CancellationToken token); Task DoesAppointmentExists(AppointmentInformation request, CancellationToken token); Task> FindPastAppointments(DateTime currentDate, CancellationToken token); Task UpdateAppointment(Appointment appointment, CancellationToken token); Task DeleteAppointment(string appointmentId, CancellationToken token); Task> GetAllAppointments(CancellationToken token); }