using System; using Itenso.TimePeriod; using Wino.Core.Domain.Models.Calendar; namespace Wino.Core.Domain.Interfaces; public interface ICalendarItem { string Title { get; } Guid Id { get; } IAccountCalendar AssignedCalendar { get; } DateTime StartDate { get; set; } DateTime EndDate { get; } double DurationInSeconds { get; set; } ITimePeriod Period { get; } bool IsAllDayEvent { get; } bool IsMultiDayEvent { get; } bool IsRecurringChild { get; } bool IsRecurringParent { get; } bool IsRecurringEvent { get; } /// /// Gets the display title for this calendar item when rendered in a specific day. /// For multi-day events, includes start/end time indicators. /// /// The period of the day where this item is being rendered. /// Calendar settings for time formatting. /// The formatted title string. string GetDisplayTitle(ITimePeriod displayingPeriod, CalendarSettings calendarSettings); }