Files
Core_Be/Models/Customer.cs
T
Dhananjaya99 bffc9b1686 first commit
2026-09-28 11:44:26 +05:30

48 lines
2.1 KiB
C#

using Fitness_core_BE.Models;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;
namespace Fitness_core_BE.Models
{
public class Customer
{
[Key]
public Guid CusId { get; set; }
public string? CusName { get; set; }
public string? PushTokenId { get; set; }
// Points at a UserDocument uploaded via POST /customer/documents. No EF relationship
// is configured (kept as a plain id) since we only ever need the id itself here — the
// mobile app builds the display URL client-side via docService/{id}.
public int? FKProfileImageDocId { get; set; }
public string? Gender { get; set; }
public DateOnly? BoD { get; set; }
public string? PrimaryPH { get; set; }
public bool IsPrimaryPHVerfied { get; set; } = false;
public string? SecondaryPH { get; set; }
public bool IsSecondaryPHVerfied { get; set; } = false;
public string? Email { get; set; }
public bool IsEmailVerfied { get; set; } = false;
public string? NIC { get; set; }
public string? Address { get; set; }
public Guid FKUserId { get; set; }
[ForeignKey("FKUserId")]
public virtual User User { get; set; }
public bool IsActive { get; set; } = true;
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
// Legacy single-gym lock mirror. New physical-access decisions are stored on the
// tenant-scoped AccessProfile so one customer can have different access state at
// different gyms.
public bool IsLocked { get; set; } = false;
public string? LockReason { get; set; } // "Manual" | "Overdue"
public DateTime? LockedAt { get; set; }
public virtual ICollection<CustomerWorkout> CustomerWorkouts { get; set; }
public virtual ICollection<CustomerMeal> CustomerMeals { get; set; }
public virtual ICollection<CustomerTarget> CustomerTargets { get; set; }
public virtual ICollection<CustomerSubscription> CustomerSubscriptions { get; set; }
}
}