namespace SIGCM2.Domain.Pricing.ChargeableChars;

/// <summary>
/// PRC-001 — Canonical category names for chargeable characters.
/// Persisted as nvarchar(32) in the database (enum-as-string).
/// </summary>
public static class ChargeableCharCategories
{
    public const string Currency    = "Currency";
    public const string Percentage  = "Percentage";
    public const string Exclamation = "Exclamation";
    public const string Question    = "Question";
    public const string Other       = "Other";

    private static readonly HashSet<string> Valid = new(StringComparer.Ordinal)
    {
        Currency, Percentage, Exclamation, Question, Other
    };

    /// <summary>Returns true if the given category string is a known valid category.</summary>
    public static bool IsValid(string? category) => category != null && Valid.Contains(category);
}
