namespace Fitness_core_BE.DTOs.Facility { public class FacilityClassDto { public Guid FacilityClassId { get; set; } public Guid FacilityId { get; set; } public string? FacilityName { get; set; } public string Name { get; set; } = string.Empty; public string? Description { get; set; } /// "Daily" | "Weekly" | "Monthly" | "Custom". public string RecurrenceType { get; set; } = string.Empty; /// "HH:mm" local time -- null for Custom. public string? StartTimeOfDay { get; set; } public int DurationMinutes { get; set; } public int WeekDaysMask { get; set; } public string? MonthDays { get; set; } public DateTime SeriesStartDate { get; set; } public DateTime? SeriesEndDate { get; set; } public int? Capacity { get; set; } public bool IsUnlimitedCapacity { get; set; } public bool IsActive { get; set; } public DateTime CreatedAt { get; set; } } /// A confirmed ad-hoc booking whose window overlaps an active class occurrence on /// the same facility -- surfaced so staff can resolve it via the existing Reschedule flow. public class SchedulingConflictDto { public Guid BookingId { get; set; } public Guid FacilityId { get; set; } public string? FacilityName { get; set; } public string? GuestName { get; set; } public DateTime StartTime { get; set; } public DateTime EndTime { get; set; } } }