namespace Baya.Domain.Entities.Catalog;

/// <summary>
/// The five price units a nurse can price a variant in — the <b>only</b> closed code enum in the catalog
/// area (categories, groups, and values are data, never code constants). <c>per_24h</c> (شبانه‌روزی /
/// live-in) and <c>per_day</c> are first-class, not edge cases — Iranian home-nursing sells exactly these
/// shapes. Crosses the wire as the stable string code.
/// </summary>
public static class PriceUnits
{
    public const string PerHour = "per_hour";
    public const string PerSession = "per_session";
    public const string PerHalfDay = "per_half_day";
    public const string PerDay = "per_day";
    public const string Per24H = "per_24h";

    public static readonly IReadOnlySet<string> All =
        new HashSet<string> { PerHour, PerSession, PerHalfDay, PerDay, Per24H };

    public static bool IsValid(string value) => value is not null && All.Contains(value);
}
