using System.Security.Claims; namespace CareFix.Api.Infrastructure; public static class Roles { public const string Engineer = "Engineer"; public const string Lead = "Lead"; public const string ProductOwner = "ProductOwner"; public const string Head = "Head"; public const string Admin = "Admin"; public static readonly string[] All = [Engineer, Lead, ProductOwner, Head, Admin]; } public static class UserContextExtensions { public static int UserId(this ClaimsPrincipal u) => int.TryParse(u.FindFirstValue(ClaimTypes.NameIdentifier), out var id) ? id : throw new AppException(401, "Please sign in again."); public static string Role(this ClaimsPrincipal u) => u.FindFirstValue(ClaimTypes.Role) ?? ""; public static bool SeesAllHospitals(this ClaimsPrincipal u) => u.Role() is Roles.Lead or Roles.ProductOwner or Roles.Head or Roles.Admin; }