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; }
}
}