using Application.Abstractions.Messaging;
using Domain.Entities.Donations.ValueObject;

namespace Application.Features.Api.DonationRank.SaveConfig;

public sealed record Command(
    int ChannelID,
    int MemberID,
    int? ID,
    string Title,
    RankThemeType Theme,
    RankPeriodType Period,
    DateTime? StartAt,
    DateTime? EndAt,
    bool IsShowAmount,
    int MaxRankCount,
    bool? NameMode,
    bool IsActive,
    string? TitleFontFamily,
    int TitleFontSizePx,
    string TitleFontColor,
    RankNameDisplayType 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
) : ICommand;