export type IncidentSeverity = "maintenance" | "degraded" | "outage"; export type ServiceStatusLevel = | "operational" | "maintenance" | "degraded" | "outage"; const severityRank: Record = { maintenance: 1, degraded: 2, outage: 3, }; export function deriveServiceStatus( incidents: ReadonlyArray<{ severity: IncidentSeverity; status: string }>, ): ServiceStatusLevel { let selected: IncidentSeverity | null = null; for (const incident of incidents) { if (incident.status !== "active") continue; if (!selected || severityRank[incident.severity] > severityRank[selected]) { selected = incident.severity; } } return selected ?? "operational"; }