namespace Domain.Entities.Donations.ValueObject;

public static class DonationConstants
{
    public const int MinAmount = 100;
    public const int MaxAmount = 10_000_000;

    public static class Alert
    {
        public const double DefaultPlayDelaySec = 0;
        public const double MaxPlayDelaySec = 60;
        public const double DefaultDisplayDurationSec = 10;
        public const double MaxDisplayDurationSec = 60;
        public const int MaxSoundFileSizeMB = 50;
        public const int MaxImageFileSizeMB = 20;
        public const int MaxMessageLength = 100;
        public const int MaxTitleLength = 200;

        public const int DefaultNicknameFontSize = 24;
        public const string DefaultNicknameFontColor = "#FFD700";
        public const int DefaultAmountFontSize = 24;
        public const string DefaultAmountFontColor = "#FF6B35";
        public const int DefaultMessageFontSize = 18;
        public const string DefaultMessageFontColor = "#FFFFFF";
        public const int DefaultTemplateFontSize = 24;
        public const string DefaultTemplateFontColor = "#FFFFFF";
    }

    public static class Goal
    {
        public const int DefaultStartAmount = 0;
        public const int MaxStartAmount = 100_000_000;
        public const int DefaultTargetAmount = 100_000;
        public const int MaxTargetAmount = 100_000_000;
        public const int MinBarHeight = 10;
        public const int MaxBarHeight = 100;
        public const int DefaultBarHeight = 30;
        public const int MinFontSize = 10;
        public const int MaxFontSize = 72;
        public const int DefaultFontSize = 16;
        public const string DefaultBarColor = "#FF6B35";
        public const string DefaultBarBackgroundColor = "#E0E0E0";
        public const string DefaultTitleFontColor = "#FFFFFF";
        public const string DefaultAmountFontColor = "#FFFFFF";
    }

    public static class Rank
    {
        public const int MinDisplayRank = 1;
        public const int MaxDisplayRank = 10;
        public const int DefaultDisplayRank = 5;
    }

    public static class Crew
    {
        public const int MaxCrewMembers = 20;
        public const int MaxCrewNameLength = 100;
        public const int MaxCrewDescriptionLength = 500;
    }

    public static class Note
    {
        public const int MaxTitleLength = 200;
        public const int MaxContentLength = 2000;
        public const int DailySendLimit = 50;
    }
}