public class Patient
{
    public Guid Id { get; set; }
    public string Mrn { get; set; } = null!;
    public string FirstName { get; set; } = null!;
    public string LastName { get; set; } = null!;
    public DateOnly DateOfBirth { get; set; }
    public string Gender { get; set; } = null!;
    public BloodType? BloodType { get; set; }
    public string? Allergies { get; set; }
    public string? EmergencyContactName { get; set; }
    public string? EmergencyContactPhone { get; set; }
    
    /// <summary>HMAC token for name search. Not PHI — enables lookup without decrypting all rows.</summary>
    public string? NameSearchToken { get; set; }
    public string Status { get; set; } = "active";
    public DateTimeOffset CreatedAt { get; set; }

    /// <summary>True when this patient was created by the simulation runner. Never set for ingested clinical data.</summary>
    public bool IsSimulated { get; set; }

    public ICollection<Encounter> Encounters { get; set; } = new List<Encounter>();
}