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