// src/components/support/ticket-badges.tsx — status/priority badges for tickets.
import { Badge } from "@/components/ui/badge";
import type { TicketPriority, TicketStatus } from "@/lib/support/types";
import { cn } from "@/lib/utils";

const STATUS_LABEL: Record<TicketStatus, string> = {
  open: "Ouvert",
  in_progress: "En cours",
  resolved: "Résolu",
};

const STATUS_CLASS: Record<TicketStatus, string> = {
  open: "border-transparent bg-blue-100 text-blue-800 dark:bg-blue-950 dark:text-blue-300",
  in_progress:
    "border-transparent bg-amber-100 text-amber-800 dark:bg-amber-950 dark:text-amber-300",
  resolved:
    "border-transparent bg-emerald-100 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-300",
};

const PRIORITY_LABEL: Record<TicketPriority, string> = {
  low: "Basse",
  medium: "Moyenne",
  high: "Haute",
};

const PRIORITY_CLASS: Record<TicketPriority, string> = {
  low: "text-muted-foreground",
  medium: "",
  high: "border-transparent bg-red-100 text-red-800 dark:bg-red-950 dark:text-red-300",
};

export function StatusBadge({ status }: { status: TicketStatus }) {
  return (
    <Badge className={cn(STATUS_CLASS[status])}>{STATUS_LABEL[status]}</Badge>
  );
}

export function PriorityBadge({ priority }: { priority: TicketPriority }) {
  return (
    <Badge variant="outline" className={cn(PRIORITY_CLASS[priority])}>
      {PRIORITY_LABEL[priority]}
    </Badge>
  );
}
