// Papeles Para Todos - Finales de partida
//
// Se evalúan en orden (primera condicion que pase gana). El más restrictivo arriba.
// La pantalla final muestra: icono, título, descripción larga, "quote" satírico.

const finalesData = [
    {
        id: 'ministro',
        condicion: (gs) => gs.razonFin !== 'despido' &&
                           gs.strikes === 0 &&
                           (gs.stats?.jornadasSinFalloOficial || 0) >= TOTAL_DIAS &&
                           gs.alineacionMinisterial >= 88 &&
                           gs.scoreTotal >= 2000,
        icono: '🏛️',
        titulo: 'MINISTRO DE INTERIOR',
        descripcion: 'Has acatado cada instrucción sin un solo incumplimiento oficial, fabricado cada foto. El Presidente te cita personalmente en el Consejo. Una semana después firmas tu primer Real Decreto. Tu retrato ya cuelga en la sede del PSOE.',
        quote: '"Un funcionario con vocación de Estado" — editorial de El País.'
    },
    {
        id: 'ejemplar',
        condicion: (gs) => gs.razonFin !== 'despido' &&
                           gs.strikes <= 1 &&
                           (gs.stats?.jornadasSinFalloOficial || 0) >= TOTAL_DIAS - 1 &&
                           gs.alineacionMinisterial >= 70,
        icono: '🎖️',
        titulo: 'FUNCIONARIO EJEMPLAR',
        descripcion: 'Has seguido las directrices al pie de la letra. La Ministra te menciona en el Consejo de Ministros como "ejemplo de compromiso institucional". Te proponen para una jefatura de sección.',
        quote: '"El tipo de perfil que el Ministerio necesita" — nota interna de RRHH.'
    },
    {
        id: 'doble_agente',
        condicion: (gs) => gs.razonFin !== 'despido' &&
                           gs.alineacionMinisterial >= 40 &&
                           gs.alineacionMinisterial < 70 &&
                           gs.scoreTotal >= 1500,
        icono: '🎭',
        titulo: 'DOBLE AGENTE',
        descripcion: 'Has jugado a dos bandas toda la semana: suficiente directriz oficial para no despertar sospechas, suficiente favor oficioso para llenarte los bolsillos. Nadie sabe muy bien qué hiciste — pero las cuentas salen.',
        quote: '"Un operativo eficiente de contornos borrosos" — informe confidencial del CNI.'
    },
    {
        id: 'competente',
        condicion: (gs) => gs.razonFin !== 'despido' &&
                           (gs.stats?.jornadasSinFalloOficial || 0) >= 4 &&
                           gs.alineacionMinisterial >= 50,
        icono: '📎',
        titulo: 'FUNCIONARIO COMPETENTE',
        descripcion: 'Has cumplido. Sin alardes, sin errores visibles. Tu evaluación anual dice "cumple suficientemente". Te dan un vale de 30€ para la cena de Navidad del Ministerio.',
        quote: '"Correcto. Puntual. Intercambiable." — tu supervisor, en entrevista anual.'
    },
    {
        id: 'gris',
        condicion: (gs) => gs.razonFin !== 'despido' &&
                           gs.alineacionMinisterial >= 30,
        icono: '🗂️',
        titulo: 'FUNCIONARIO GRIS',
        descripcion: 'Has vacilado demasiado. Ni has contentado al Ministerio ni has aprovechado las oficiosas. El jefe te mira con la frialdad del que ya ha decidido tu traslado. Próximo destino: oficina de extranjería de Teruel.',
        quote: '"Sin criterio, sin ambición. Quizá sobra" — apunte a lápiz en tu expediente.'
    },
    {
        id: 'discolo',
        condicion: (gs) => gs.razonFin !== 'despido',
        icono: '✊',
        titulo: 'FUNCIONARIO DÍSCOLO',
        descripcion: 'Has obstruido sistemáticamente las directrices. Rechazaste a quienes había que aprobar y aprobaste a los incorrectos. El Ministerio abre expediente disciplinario. La ultraderecha te aplaude en redes — lo cual no te ayuda.',
        quote: '"Un peligro para el servicio público" — sindicato del Ministerio.'
    },
    // Final por defecto (no debería alcanzarse, actúa como fallback)
    {
        id: 'despido_genérico',
        condicion: () => true,
        icono: '🚫',
        titulo: 'DESPIDO FULMINANTE',
        descripcion: 'Tres strikes y fuera. Tu ficha laboral queda manchada para siempre.',
        quote: ''
    }
];

function seleccionarFinal(gs) {
    for (const f of finalesData) {
        if (f.condicion(gs)) return f;
    }
    return finalesData[finalesData.length - 1];
}
