using System.Data; namespace AuthHex.Models { public class User { public Guid Id { get; set; } = Guid.NewGuid(); public string? FullName { get; set; } public string? UserName { get; set; } public string? Nic { get; set; } public string? Address { get; set; } public string? Optional1 { get; set; } //in gym case use in secondary contact number public bool? Optional1Verified { get; set; } = false; public string? Optional2 { get; set; } public string? PasswordHash { get; set; } public string? Email { get; set; } public bool? EmailVerified { get; set; } = false; public string? MobileNumber { get; set; } public bool? MobileNumberVerified { get; set; } = false; public bool? IsActive { get; set; } = true; public bool? IsLocked { get; set; } = false; public DateTime? DeletedAt { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; //2FA public bool IsMfaEnabled { get; set; } public UserMfa? UserMfa { get; set; } // Roles are not an authentication concern: the ERP owns a person's role and permissions (users.RoleId in ERPCore). // AuthHex only says who the person is. (The old Users.RoleId column is left in the table, nullable and unmapped, // until it is dropped - see Docs/migrations/2026-10-remove-roles.sql.) public Guid UserTypeId { get; set; } public UserType? UserType { get; set; } public ICollection? Sessions { get; set; } public ICollection? Providers { get; set; } } }