namespace Management.Security; /// /// Request-scoped authentication context. /// Populated by ClientAuthMiddleware. /// public sealed class ClientContext { public string? SessionId { get; set; } public string? ClientId { get; set; } public string? PlatformClientId { get; set; } public string? ClientName { get; set; } public string? UserId { get; set; } public string? Email { get; set; } public string? Role { get; set; } public bool IsDevBypass { get; set; } public bool IsAuthenticated => !string.IsNullOrWhiteSpace(ClientId); /// Full platform access. /// Full admin access — SuperAdmin or Admin role. public bool IsAdmin => string.Equals(Role, "SuperAdmin", StringComparison.OrdinalIgnoreCase) || string.Equals(Role, "Admin", StringComparison.OrdinalIgnoreCase); /// Health monitoring and Tech Client access only. public bool IsTech => string.Equals(Role, "Tech", StringComparison.OrdinalIgnoreCase); /// Any authenticated staff member (SuperAdmin, Admin or Tech). public bool IsStaff => IsAdmin || IsTech; }