33 lines
1.3 KiB
C#
33 lines
1.3 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace Fitness_core_BE.Models
|
|
{
|
|
/// <summary>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).</summary>
|
|
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;
|
|
|
|
/// <summary>"Gym" | "Pool" | "Court" | "Class" — informational grouping for the admin
|
|
/// UI; booking rules themselves live on FacilitySession/CustomerPlan, not on this type.</summary>
|
|
public string FacilityType { get; set; } = "Class";
|
|
|
|
public string? Description { get; set; }
|
|
|
|
/// <summary>Default per-session headcount limit; a specific FacilitySession can override.</summary>
|
|
public int DefaultCapacity { get; set; } = 1;
|
|
|
|
public bool IsActive { get; set; } = true;
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
}
|