using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Fitness_core_BE.Models { /// A bookable area of the club — the gym floor, the pool, a court, a class type /// (karate, etc). Gym-floor access itself keeps working through the existing /// CustomerPlan/Attendance flow unchanged; Facility/FacilitySession/Booking below are for /// the new capacity-limited, session-based areas (pool, courts, classes). public class Facility { [Key] public Guid FacilityId { get; set; } public Guid FKClientId { get; set; } [ForeignKey(nameof(FKClientId))] public Client Client { get; set; } public string Name { get; set; } = string.Empty; /// "Gym" | "Pool" | "Court" | "Class" — informational grouping for the admin /// UI; booking rules themselves live on FacilitySession/CustomerPlan, not on this type. public string FacilityType { get; set; } = "Class"; public string? Description { get; set; } /// Default per-session headcount limit; a specific FacilitySession can override. public int DefaultCapacity { get; set; } = 1; public bool IsActive { get; set; } = true; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } }