namespace Application.Abstractions.Identity.Models
{
    public sealed class AspNetUserDto
    {
        public required string ID { get; init; }
        public string? UserName { get; init; }
        public string? NormalizedUserName { get; init; }
        public string? Email { get; init; }
        public string? NormalizedEmail { get; init; }
        public bool EmailConfirmed { get; init; } = false;
        public string? PhoneNumber { get; init; }
        public bool PhoneNumberConfirmed { get; init; } = false;
        public bool TwoFactorEnabled { get; init; } = false;
        public DateTimeOffset? LockoutEnd { get; init; }
        public bool LockoutEnabled { get; init; } = false;
        public int AccessFailedCount { get; init; }

        // Custom columns (ApplicationUser)
        public string? FullName { get; init; }
        public bool IsDeleted { get; init; } = false;

        public IEnumerable<string> Roles { get; set; } = [];
    }
}