import { cn } from '@/lib/utils';

/**
 * Tickets (demandes internes) masqués pour l'instant. Repasser à `true` pour réactiver
 * partout : colonne Type, filtre Type, sélecteur dans les formulaires, champ sur la fiche
 * et la ventilation Réclamations/Tickets des cartes KPI. Le modèle de données reste intact.
 */
export const TICKETS_ENABLED = false;

/**
 * Buckets de statut pour le filtre rapide et le sélecteur Statut. « En cours » = ouvertes
 * (Nouveau + En cours, soit tout ce qui n'est pas Résolu/Clôturé) → cohérent avec la carte
 * KPI « En cours ». La valeur `open` est interprétée côté serveur (whereNotIn resolved/closed).
 */
export const STATUS_FILTERS: { value: string; label: string }[] = [
    { value: '', label: 'Tous' },
    { value: 'open', label: 'En cours' },
    { value: 'resolved', label: 'Résolu' },
    { value: 'closed', label: 'Clôturé' },
];

export function priorityChipClass(priority?: string): string {
    switch (priority) {
        case 'high':
            return 'bg-rose-100 text-rose-700';
        case 'medium':
            return 'bg-amber-100 text-amber-700';
        case 'low':
            return 'bg-slate-100 text-slate-600';
        default:
            return 'bg-slate-100 text-slate-600';
    }
}

export function statusChipClass(status?: string): string {
    switch (status) {
        case 'new':
            return 'bg-sky-100 text-sky-700';
        case 'in_progress':
            return 'bg-amber-100 text-amber-700';
        case 'resolved':
            return 'bg-emerald-100 text-emerald-700';
        case 'closed':
            return 'bg-slate-100 text-slate-600';
        default:
            return 'bg-slate-100 text-slate-600';
    }
}

export function Chip({ className, children }: { className?: string; children: React.ReactNode }) {
    return (
        <span className={cn('inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium', className)}>{children}</span>
    );
}

/** Nom du logement : nom interne en vert (toujours visible) puis le nom, tronqué. */
export function LogementName({
    name,
    internal,
    className,
}: {
    name?: string | null;
    internal?: string | null;
    className?: string;
}) {
    const title = `${internal ? internal + ' ' : ''}${name ?? ''}`.trim();
    return (
        <span className={cn('inline-flex min-w-0 items-baseline gap-1', className)} title={title}>
            {internal ? <span className="shrink-0 font-semibold text-emerald-600">{internal}</span> : null}
            <span className="truncate">{name ?? 'Aucun logement'}</span>
        </span>
    );
}
