export type VarianteEstatus = 'success' | 'warning' | 'secondary' | 'danger' | 'info';

export interface EstatusPresentacion {
    etiqueta: string;
    variante: VarianteEstatus;
}

/**
 * Mapea el estatus del contrato a badge Bootstrap.
 */
export function obtenerVarianteEstatus(estatus: string | null | undefined): EstatusPresentacion {
    const normalizado = (estatus ?? '').trim().toLowerCase();

    if (!normalizado) {
        return { etiqueta: 'Sin estatus', variante: 'secondary' };
    }

    const etiqueta = (estatus ?? '').trim();

    if (
        normalizado.includes('aprob')
        || normalizado.includes('activ')
        || normalizado.includes('firm')
        || normalizado.includes('complet')
    ) {
        return { etiqueta, variante: 'success' };
    }

    if (
        normalizado.includes('proceso')
        || normalizado.includes('borrador')
        || normalizado.includes('pendiente')
        || normalizado.includes('revision')
    ) {
        return { etiqueta, variante: 'warning' };
    }

    if (normalizado.includes('rechaz') || normalizado.includes('cancel') || normalizado.includes('anulad')) {
        return { etiqueta, variante: 'danger' };
    }

    return { etiqueta, variante: 'secondary' };
}
