// Status and trigger badges for runs — one place so the whole app colors
// run/region lifecycles the same way.

import { Badge, type BadgeTone } from "@/components/ui/Badge";
import type { RegionRunStatus, RunStatus, RunTrigger } from "@/lib/api-types";

const RUN_STATUS_TONES: Record<RunStatus, BadgeTone> = {
  running: "info",
  success: "good",
  partial: "warn",
  failed: "bad",
  aborted: "bad",
};

export function RunStatusBadge({ status }: { status: RunStatus }) {
  return <Badge tone={RUN_STATUS_TONES[status]}>{status}</Badge>;
}

const REGION_STATUS_TONES: Record<RegionRunStatus, BadgeTone> = {
  pending: "neutral",
  running: "info",
  success: "good",
  failed: "bad",
};

export function RegionStatusBadge({ status, title }: { status: RegionRunStatus; title?: string }) {
  return <Badge tone={REGION_STATUS_TONES[status]} title={title}>{status}</Badge>;
}

export function TriggerBadge({ trigger }: { trigger: RunTrigger }) {
  return <Badge tone="neutral">{trigger}</Badge>;
}
