using Domain.Entities.Members.ValueObject; namespace Application.Features.Admin.Member.List.Get; public sealed class Response { public int ID { get; init; } public string SID { get; init; } = ""; public required string Email { get; init; } public string? Name { get; init; } public string? FullName { get; init; } public string? FirstName { get; init; } public string? LastName { get; init; } public string? Phone { get; init; } public DateOnly? Birthday { get; init; } public Gender? Gender { get; init; } public string? Summary { get; init; } public string? Intro { get; init; } public string? Thumb { get; init; } public string? Icon { get; init; } public int? MemberGradeID { get; init; } public string? GradeName { get; init; } public bool IsEmailVerified { get; init; } public bool IsAuthCertified { get; init; } public bool IsDenied { get; init; } public bool IsAdmin { get; init; } public bool IsWithdraw { get; init; } public bool IsCreator { get; init; } public string? DeviceInfo { get; init; } public string? SignupIP { get; init; } public string? LastLoginIp { get; init; } public string? IpAddress { get; init; } public string? UserAgent { get; init; } public DateTime? LastLoginAt { get; init; } public DateTime? EmailVerifiedAt { get; init; } public DateTime? AuthCertifiedAt { get; init; } public DateTime? DeniedAt { get; init; } public DateTime? DeletedAt { get; init; } public DateTime? UpdatedAt { get; init; } public DateTime CreatedAt { get; init; } public long Following { get; init; } public long Followed { get; init; } // Channel public ChannelInfo? Channel { get; init; } // Wallet public WalletInfo Wallet { get; init; } = new(); public sealed class ChannelInfo { public string SID { get; init; } = ""; public string Name { get; init; } = ""; public string? Handle { get; init; } public string YouTubeUrl { get; init; } = ""; } public sealed class WalletInfo { public long Balance { get; init; } public long CreditBalance { get; init; } } }