using Campaign_Tracker.Server.Authorization; namespace Campaign_Tracker.Server.Authentication; public static class RoleWorkspaceResolver { private static readonly (string Role, string WorkspacePath)[] WorkspacePriority = [ (ApplicationRole.Admin, "/workspace/admin"), (ApplicationRole.ClientServices, "/workspace/client-services"), (ApplicationRole.Production, "/workspace/production"), (ApplicationRole.Transportation, "/workspace/transportation"), (ApplicationRole.Support, "/workspace/support"), ]; public static string ResolveWorkspacePath(IEnumerable roles) { var normalizedRoles = ApplicationRole.NormalizeMany(roles); foreach (var (role, workspacePath) in WorkspacePriority) { if (normalizedRoles.Contains(role, StringComparer.OrdinalIgnoreCase)) { return workspacePath; } } return "/workspace"; } }