using Baya.Domain.Common;

namespace Baya.Domain.Entities.Identity;

/// <summary>
/// The thin payer extension for a customer. Intentionally lightweight — most customer reality lives in
/// their <c>patients</c>, addresses and bookings. Customer national-ID KYC is deferred at launch, so no
/// verification columns exist here.
/// </summary>
public class CustomerProfile : BaseEntity<long>
{
    public int UserId { get; set; }
    public User.User User { get; set; }

    /// <summary>Encrypted at rest.</summary>
    public string DefaultEmergencyContactName { get; set; }

    /// <summary>Encrypted at rest.</summary>
    public string DefaultEmergencyContactPhone { get; set; }

    /// <summary>Public URL of the customer's profile photo, stored via <c>IObjectStorage</c>. NULL until
    /// one is uploaded.</summary>
    public string AvatarUrl { get; set; }

    /// <summary>BCP-47-ish UI language code the customer prefers (e.g. <c>fa</c>, <c>en</c>). NULL falls
    /// back to the platform default.</summary>
    public string PreferredLanguage { get; set; }

    public ICollection<Patient> Patients { get; set; }
}
