import { type TicketStatus } from '@/types';
import { Badge } from '@/components/ui/badge';

const statusConfig: Record<TicketStatus, { label: string; className: string }> = {
    open: {
        label: 'Open',
        className: 'bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400 border-blue-200 dark:border-blue-800',
    },
    in_progress: {
        label: 'In Progress',
        className: 'bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-400 border-amber-200 dark:border-amber-800',
    },
    on_hold: {
        label: 'On Hold',
        className: 'bg-gray-100 text-gray-800 dark:bg-gray-900/30 dark:text-gray-400 border-gray-200 dark:border-gray-800',
    },
    resolved: {
        label: 'Resolved',
        className: 'bg-emerald-100 text-emerald-800 dark:bg-emerald-900/30 dark:text-emerald-400 border-emerald-200 dark:border-emerald-800',
    },
    closed: {
        label: 'Closed',
        className: 'bg-slate-100 text-slate-600 dark:bg-slate-900/30 dark:text-slate-400 border-slate-200 dark:border-slate-800',
    },
};

export function TicketStatusBadge({ status }: { status: TicketStatus }) {
    const config = statusConfig[status];
    return (
        <Badge variant="outline" className={`font-medium ${config.className}`}>
            {config.label}
        </Badge>
    );
}
