import { MENSUALIDADES_MAX, MENSUALIDADES_MIN, PCT_ENGANCHE, PCT_ENGANCHE_FIRMA, PCT_ESCRITURACION, type EsquemaFrasaResultado, } from '../lib/esquema-frasa' import { formatoMoneda, formatoPorcentaje } from '../lib/formatters' interface Props { /** Esquema FRASA 2026 calculado (siempre presente: solo se renderiza con unidad) */ esquema: EsquemaFrasaResultado numMensualidades: number onNumMensualidades: (n: number) => void escrituracionDiferida: boolean onEscrituracionDiferida: (v: boolean) => void } const pasoBase = 'flex-1 rounded-xl border border-[#E5E7EB] bg-white p-4 dark:border-[#1E293B] dark:bg-[#0F172A]' const pasoTitulo = 'text-xs font-semibold uppercase tracking-wider text-[#64748B] dark:text-[#94A3B8]' const pasoMonto = 'mt-1 text-lg font-semibold text-[#111827] dark:text-[#E2E8F0]' /** * Panel único del esquema FRASA 2026 (reemplaza a las 4 propuestas): * línea de tiempo Hoy → A la firma → Mensualidades, el detalle de conceptos * (enganche de firma 2.5%, enganche 7.5%, escrituración 5.5%) y los controles * del diferimiento: número de mensualidades (1..36) y si la escrituración se * difiere con el enganche o se paga a la firma. */ export function EsquemaPanel({ esquema, numMensualidades, onNumMensualidades, escrituracionDiferida, onEscrituracionDiferida, }: Props) { return (
{/* Línea de tiempo del esquema */}

Hoy

{formatoMoneda(esquema.apartado)}

Apartado (aparta la unidad)

A la firma

{formatoMoneda(esquema.pagoUnicoFirma)}

Saldo de enganche de firma {!escrituracionDiferida && ' + escrituración'}

Después

{esquema.numMensualidades} × {formatoMoneda(esquema.mensualidad)}

Total diferible {formatoMoneda(esquema.baseDiferible)}

{/* Detalle de conceptos */}

Esquema FRASA 2026 — conceptos

Enganche de firma ({formatoPorcentaje(PCT_ENGANCHE_FIRMA)})
{formatoMoneda(esquema.engancheFirmaTotal)} − apartado acreditado → saldo a la firma {formatoMoneda(esquema.saldoFirma)}
{esquema.excedenteApartado > 0 && (
Apartado que excede el 2.5%
{formatoMoneda(esquema.excedenteApartado)} acreditado al enganche
)}
Enganche ({formatoPorcentaje(PCT_ENGANCHE)}) diferible
{formatoMoneda(esquema.enganche)}
Gastos de escrituración ({formatoPorcentaje(PCT_ESCRITURACION)})
{formatoMoneda(esquema.escrituracion)} {escrituracionDiferida ? 'diferidos con el enganche' : 'pagados a la firma'}
Total del esquema (15.5% del precio)
{formatoMoneda(esquema.totalPagado)}
{/* Controles del diferimiento */}

De {MENSUALIDADES_MIN} a {MENSUALIDADES_MAX}; cada una de {formatoMoneda(esquema.mensualidad)}

) }