using Application.Abstractions.Messaging;

namespace Application.Features.Api.DonationRank.GetConfig;

public sealed record Query(int ChannelID) : IQuery<Response>;

public sealed record Response(IReadOnlyList<RankConfigItem> List);

public sealed record RankConfigItem(
    int ID,
    string Title,
    int Theme,
    int Period,
    DateTime? StartAt,
    DateTime? EndAt,
    bool IsShowAmount,
    int MaxRankCount,
    bool? NameMode,
    bool IsActive,
    string? TitleFontFamily,
    int TitleFontSizePx,
    string TitleFontColor,
    int NameDisplayType,
    bool IsShowDonationCount,
    bool IsShowGradeIcon,
    bool IsShowMemberIcon,
    string? Rank1FontFamily,
    int Rank1FontSizePx,
    string Rank1FontColor,
    string? Rank2FontFamily,
    int Rank2FontSizePx,
    string Rank2FontColor,
    string? Rank3FontFamily,
    int Rank3FontSizePx,
    string Rank3FontColor
);