import { cn } from '@/lib/utils';
import { Home } from 'lucide-react';

/**
 * Pastille « Propriétaire » — séjour d'un propriétaire dans son propre logement.
 *
 * Un seul composant pour TOUS les écrans (réservations, recouvrements, tableau de
 * bord, calendrier, fiche réservation) : l'équipe d'exploitation doit reconnaître un
 * séjour propriétaire à la même pastille partout, sans avoir à déchiffrer un nom de
 * client saisi « proprio proprio ».
 *
 * Violet volontairement : les autres couleurs de l'application portent déjà un sens
 * (vert = payé/actif, ambre = en attente, rouge = impayé/alerte, bleu = local). Le
 * violet ne collisionne avec aucun statut, la pastille se lit donc comme une nature
 * de réservation et non comme un état.
 */
export function OwnerStayBadge({
    className,
    size = 'default',
    label = 'Propriétaire',
    title = "Séjour du propriétaire dans son logement — hors chiffre d'affaires et hors taux d'occupation",
    /** `onDark` : sur un bandeau de couleur, où le violet clair ne ressort pas. */
    tone = 'default',
}: {
    className?: string;
    size?: 'default' | 'sm';
    label?: string;
    title?: string;
    tone?: 'default' | 'onDark';
}) {
    return (
        <span
            title={title}
            className={cn(
                'inline-flex shrink-0 items-center gap-1 rounded-full border font-semibold',
                tone === 'onDark'
                    ? 'border-white/30 bg-white/20 text-white'
                    : 'border-violet-200 bg-violet-100 text-violet-800',
                size === 'sm' ? 'px-1.5 py-0 text-[10px]' : 'px-2 py-0.5 text-xs',
                className,
            )}
        >
            <Home className={size === 'sm' ? 'h-2.5 w-2.5' : 'h-3 w-3'} />
            {label}
        </span>
    );
}
