namespace Application.Features.Api.Auth.GetProfile;

public sealed record Response(
    int ID,
    string Sid,
    string Email,
    string? Name,
    string? Intro,
    string? Summary,
    string? Thumb,
    string? Icon,
    int? Gender,
    bool IsEmailVerified,
    bool IsAuthCertified,
    bool IsAdmin,
    bool IsCreator,
    bool IsDenied,
    DateTime? LastLoginAt,
    DateTime? PasswordUpdatedAt,
    DateTime CreatedAt,
    DateTime? UpdatedAt,
    GradeDto? MemberGrade,
    ApproveDto MemberApprove,
    StatsDto MemberStats
);

public sealed record GradeDto(
    int ID,
    string KorName,
    string EngName,
    short Order,
    string? Image
);

public sealed record ApproveDto(
    bool IsReceiveSMS,
    bool IsReceiveEmail,
    bool IsReceiveNote,
    bool IsDisclosureInvest
);

public sealed record StatsDto(
    long Exp,
    long PostCount,
    long CommentCount,
    long LikeReceivedCount,
    long LikeGivenCount,
    long BookmarkGivenCount,
    long LoginCount,
    long AttendanceCount,
    long FollowingCount,
    long FollowerCount
);
