using System; using System.Collections.Generic; using System.Threading.Tasks; using Wino.Core.Domain.Entities.Calendar; using Wino.Core.Domain.Enums; namespace Wino.Core.Domain.Interfaces; public interface ICalendarServiceEx { Task ClearAllCalendarEventAttendeesAsync(); Task ClearAllCalendarsAsync(); Task ClearAllDataAsync(); Task ClearAllEventsAsync(); Task DeleteCalendarAsync(string remoteCalendarId); Task DeleteCalendarEventAttendeesForEventAsync(Guid eventId); Task DeleteEventAsync(string remoteEventId); Task> GetAllCalendarEventAttendeesAsync(); Task> GetAllCalendarsAsync(); Task> GetAllDayEventsAsync(); Task> GetAllEventsAsync(); Task> GetAllEventsIncludingDeletedAsync(); Task> GetAllRecurringEventsByTypeAsync(); Task GetCalendarByRemoteIdAsync(string remoteCalendarId); Task> GetCalendarEventAttendeeResponseCountsAsync(Guid eventId); Task> GetCalendarEventAttendeesForEventAsync(Guid eventId); Task> GetCalendarEventAttendeesForEventByRemoteIdAsync(string remoteEventId); Task GetCalendarSyncTokenAsync(string calendarId); Task GetEventByRemoteIdAsync(string remoteEventId); Task> GetEventsByItemTypeAsync(CalendarItemType itemType); Task> GetEventsByItemTypesAsync(params CalendarItemType[] itemTypes); Task> GetEventsByremoteCalendarIdAsync(string remoteCalendarId); Task> GetEventsForCalendarAsync(Guid calendarId); Task> GetEventsInDateRangeAsync(DateTime startDate, DateTime endDate); Task> GetEventsSinceLastSyncAsync(DateTime? lastSyncTime); Task> GetEventStatsByItemTypeAsync(); Task> GetExpandedEventsInDateRangeAsync(DateTime startDate, DateTime endDate); Task> GetExpandedEventsInDateRangeWithExceptionsAsync(DateTime startDate, DateTime endDate, AccountCalendar calendar); Task GetLastSyncTimeAsync(string calendarId); Task> GetMultiDayEventsAsync(); Task> GetRecurringEventsAsync(); Task HardDeleteEventAsync(string remoteEventId); Task InsertCalendarAsync(AccountCalendar calendar); Task InsertCalendarEventAttendeeAsync(CalendarEventAttendee calendareventattendee); Task InsertEventAsync(CalendarItem calendarItem); Task MarkEventAsDeletedAsync(string remoteEventId, string remoteCalendarId); Task SyncAttendeesForEventAsync(Guid eventId, List attendees); Task SyncCalendarEventAttendeesForEventAsync(Guid eventId, List calendareventattendees); Task UpdateAllEventItemTypesAsync(); Task UpdateCalendarAsync(AccountCalendar calendar); Task UpdateCalendarEventAttendeeAsync(CalendarEventAttendee calendareventattendee); Task UpdateCalendarSyncTokenAsync(string calendarId, string syncToken); Task UpdateEventAsync(CalendarItem calendarItem); Task UpsertCalendarAsync(AccountCalendar calendar); Task UpsertEventAsync(CalendarItem calendarItem); }