/** * Shared severity ladder for calls and incidents: routine < minor < moderate < major. * Every call/incident gets one of these four. `"unknown"` (and any other * unrecognized value) is a legacy value still present on historical docs — * treat it as "no severity", not as a fifth level. */ import type { ReactElement } from "react"; export type Severity = "routine" | "minor" | "moderate" | "major"; export const SEVERITY_ORDER: Record = { routine: 0, minor: 1, moderate: 2, major: 3 }; export const SEVERITY_LABEL: Record = { routine: "Routine", minor: "Minor", moderate: "Moderate", major: "Major" }; export const SEVERITY_COLORS: Record = { routine: "bg-gray-800/40 text-gray-600", minor: "bg-gray-800 text-gray-400", moderate: "bg-orange-950 text-orange-400", major: "bg-red-950 text-red-400", }; export function isKnownSeverity(s: string | null | undefined): s is Severity { return s === "routine" || s === "minor" || s === "moderate" || s === "major"; } /** Legacy/unset severities rank below `routine` so a recency-sorted list never confuses them with a real (low) severity. */ export function severityRank(s: string | null | undefined): number { return isKnownSeverity(s) ? SEVERITY_ORDER[s] : -1; } export function severityBadge(severity: string | null | undefined): ReactElement | null { if (!isKnownSeverity(severity)) return null; return ( {SEVERITY_LABEL[severity]} ); }