using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Fitness_core_BE.Models { /// A physical access zone within the club (e.g. "Pool Area", "Indoor Gym"), /// each fitted with its own fingerprint/face terminal. CustomerPlan grants access to /// one or more Places via CustomerPlanPlace; AccessDevice.FKPlaceId says which Place a /// terminal sits in. Deliberately separate from Facility, which models capacity-limited /// bookable sessions (pool/court/class bookings) -- Places are about which physical /// machine a member's access profile should reach, not about booking a time slot. public class Place { [Key] public Guid PlaceId { get; set; } public Guid FKClientId { get; set; } [ForeignKey(nameof(FKClientId))] public Client Client { get; set; } [MaxLength(128)] public string Name { get; set; } = string.Empty; [MaxLength(500)] public string? Description { get; set; } public bool IsActive { get; set; } = true; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; } }