using ROLAC.API.Entities.Base;

namespace ROLAC.API.Entities;

public class Member : SoftDeleteEntity, IAuditable
{
    public int      Id           { get; set; }
    public string   FirstName_en { get; set; } = null!;
    public string   LastName_en  { get; set; } = null!;
    public string?  NickName     { get; set; }
    public string?  FirstName_zh { get; set; }
    public string?  LastName_zh  { get; set; }
    public string?  Entity       { get; set; }       // company / business name (公司行號) — used for company-check offerings
    public string?  Gender       { get; set; }       // 'M' | 'F' | 'Other'
    public DateOnly? DateOfBirth  { get; set; }
    public DateOnly? BaptismDate  { get; set; }
    public string?  BaptismChurch { get; set; }
    public string?  Email         { get; set; }
    public string?  PhoneCell     { get; set; }
    public string?  PhoneHome     { get; set; }
    public string?  Address       { get; set; }
    public string?  City          { get; set; }
    public string?  State         { get; set; }
    public string?  ZipCode       { get; set; }
    public string   Country       { get; set; } = "USA";
    public string?  PhotoBlobPath { get; set; }
    public string   Status        { get; set; } = "Member"; // Member|Visitor|Inactive|Former
    public string   LanguagePreference { get; set; } = "en";
    public DateOnly? JoinDate     { get; set; }
    public string?  Notes         { get; set; }
    public int?     FamilyUnitId  { get; set; }
    public FamilyUnit? FamilyUnit { get; set; }
}
