namespace TarninaHub.Application.Security; public static class RoleNames { public const string User = "user"; public const string Jst = "jst"; public const string Operator = "operator"; public const string Manager = "manager"; public const string Admin = "admin"; public static readonly IReadOnlyList All = [User, Jst, Operator, Manager, Admin]; public static bool IsValid(string role) => All.Contains(role); } public static class Policies { /// operator, manager, admin — ROPS/expert staff. public const string Staff = "Staff"; /// operator, admin. public const string OperatorOrAdmin = "OperatorOrAdmin"; /// manager, operator, admin. public const string ManagerOrAbove = "ManagerOrAbove"; /// admin only. public const string AdminOnly = "AdminOnly"; /// jst and above (jst, operator, manager, admin). public const string JstOrAbove = "JstOrAbove"; } public static class ConsentScopes { /// Access granted by the data subject's consent. public const string ByConsent = "by-consent"; /// Time-limited access (uses consent.expires_at). public const string Temporary = "temporary"; /// Fully anonymized data (no personal identifiers). public const string Anonymized = "anonymized"; public static readonly IReadOnlyList All = [ByConsent, Temporary, Anonymized]; }