RoleAccessPermissionCodes.cs 1.05 KB
namespace FoodLabeling.Application.Contracts.Constants;

/// <summary>
/// 角色「访问权限」勾选项编码(与前端约定一致,存库为 JSON 数组字符串)。
/// </summary>
public static class RoleAccessPermissionCodes
{
    public const string ManageLabels = "manage_labels";

    public const string ManagePeople = "manage_people";

    public const string EditSettings = "edit_settings";

    public const string ManageProducts = "manage_products";

    public const string ViewReports = "view_reports";

    public const string ApproveBatches = "approve_batches";

    /// <summary>全部合法编码(顺序即 UI 展示顺序)</summary>
    public static readonly IReadOnlyList<string> All = new[]
    {
        ManageLabels,
        ManagePeople,
        EditSettings,
        ManageProducts,
        ViewReports,
        ApproveBatches
    };

    private static readonly HashSet<string> _allSet = new(All, StringComparer.Ordinal);

    public static bool IsKnown(string code) => !string.IsNullOrWhiteSpace(code) && _allSet.Contains(code.Trim());
}