using WorkTracker.Domain; namespace WorkTracker.Services.WorkDays; public interface IWorkDayService { Task GetAsync(DateOnly date, CancellationToken cancellationToken = default); Task GetWorkUnitAsync(DateOnly date, string workUnitId, CancellationToken cancellationToken = default); Task GetCalendarEventAsync(DateOnly date, string calendarEventId, CancellationToken cancellationToken = default); Task SaveWorkUnitAsync(DateOnly date, WorkUnitDocument workUnit, CancellationToken cancellationToken = default); Task SaveCalendarEventAsync(DateOnly date, CalendarEventDocument calendarEvent, CancellationToken cancellationToken = default); Task DeleteWorkUnitAsync(DateOnly date, string workUnitId, CancellationToken cancellationToken = default); Task DeleteCalendarEventAsync(DateOnly date, string calendarEventId, CancellationToken cancellationToken = default); Task> GetRangeAsync(DateOnly from, DateOnly to, CancellationToken cancellationToken = default); Task GetMonthlySummaryAsync(int year, int month, bool includePreview, CancellationToken cancellationToken = default); Task GetMonthlyTimesheetAsync(int year, int month, bool includePreview, CancellationToken cancellationToken = default); Task GenerateMonthlyPreviewWorkUnitsAsync(int year, int month, CancellationToken cancellationToken = default); }