// Papeles Para Todos - Eventos especiales entre jornadas
//
// Se disparan con cierta probabilidad entre jornadas, tras el resumen y antes
// del boletín del día siguiente. Usan el mismo patrón que Boomermania: modal
// con opciones, cada opción aplica un efecto sobre gameState.
//
// efecto puede tener: scoreTotal, alineacionMinisterial, strikes.

const eventosData = [
    {
        id: 'filtracion_ser',
        dispatchMinDia: 3,
        titulo: 'Filtración en la Cadena SER',
        descripcion: 'Un periodista publica las ratios de aprobación por origen. Tu nombre aparece citado. El gabinete de prensa del Ministerio exige una "reacción decidida".',
        opciones: [
            {
                texto: 'Negar todo y pedir rectificación',
                efecto: { scoreTotal: -30, alineacionMinisterial: +15 },
                descripcionEfecto: '-30 pts · +15% alineación'
            },
            {
                texto: 'Dimitir teatralmente (con filtración a El Mundo)',
                efecto: { scoreTotal: +50, alineacionMinisterial: -15, strikes: 1 },
                descripcionEfecto: '+50 pts · -15% alineación · +1 strike'
            },
            {
                texto: 'Acusar a la ultraderecha de la filtración',
                efecto: { scoreTotal: +20, alineacionMinisterial: +10 },
                descripcionEfecto: '+20 pts · +10% alineación'
            }
        ]
    },
    {
        id: 'denuncia_caritas',
        dispatchMinDia: 3,
        titulo: 'Denuncia de Cáritas',
        descripcion: 'Cáritas te denuncia públicamente por rechazar a una familia humanitaria hace dos días. Salen imágenes de los menores en los informativos.',
        opciones: [
            {
                texto: 'Pedir perdón en rueda de prensa',
                efecto: { scoreTotal: -20, alineacionMinisterial: +15 },
                descripcionEfecto: '-20 pts · +15% alineación'
            },
            {
                texto: 'Ignorar y no contestar',
                efecto: { scoreTotal: 0, alineacionMinisterial: -10 },
                descripcionEfecto: '0 pts · -10% alineación'
            },
            {
                texto: 'Pedir a Hacienda que inspeccione a Cáritas',
                efecto: { scoreTotal: +40, alineacionMinisterial: -5 },
                descripcionEfecto: '+40 pts · -5% alineación'
            }
        ]
    },
    {
        id: 'sobre_jefe',
        dispatchMinDia: 2,
        titulo: 'Encuentro en el Parking',
        descripcion: 'Tu jefe te intercepta en el sótano y te entrega un sobre "para tus gastos". Dentro, 500€ en billetes de 20 y una nota: "habrá un Petrov el jueves — facilita".',
        opciones: [
            {
                texto: 'Aceptar el sobre y callar',
                efecto: { scoreTotal: +80, alineacionMinisterial: -5 },
                descripcionEfecto: '+80 pts · -5% alineación'
            },
            {
                texto: 'Devolver el sobre sin comentarios',
                efecto: { scoreTotal: 0, alineacionMinisterial: +20 },
                descripcionEfecto: '0 pts · +20% alineación'
            },
            {
                texto: 'Aceptar y filtrar la conversación a la SER',
                efecto: { scoreTotal: +30, alineacionMinisterial: +25, strikes: 1 },
                descripcionEfecto: '+30 pts · +25% alineación · +1 strike'
            }
        ]
    },
    {
        id: 'defensor_pueblo',
        dispatchMinDia: 4,
        titulo: 'Visita del Defensor del Pueblo',
        descripcion: 'El Defensor del Pueblo viene mañana a revisar tus decisiones. Tienes una noche para "reordenar" el expediente.',
        opciones: [
            {
                texto: 'Falsificar actas con criterio',
                efecto: { scoreTotal: +30, alineacionMinisterial: +10, strikes: 1 },
                descripcionEfecto: '+30 pts · +10% alineación · +1 strike'
            },
            {
                texto: 'Dejar todo tal cual está',
                efecto: { scoreTotal: 0, alineacionMinisterial: -10 },
                descripcionEfecto: '0 pts · -10% alineación'
            },
            {
                texto: 'Colaborar activamente con la auditoría',
                efecto: { scoreTotal: -20, alineacionMinisterial: +15 },
                descripcionEfecto: '-20 pts · +15% alineación'
            }
        ]
    },
    {
        id: 'recurso_judicial',
        dispatchMinDia: 3,
        titulo: 'Recurso Contencioso-Administrativo',
        descripcion: 'Un ingeniero sueco rechazado te ha demandado por discriminación. Tu letrado pide instrucciones.',
        opciones: [
            {
                texto: 'Defenderse citando la directriz oficial',
                efecto: { scoreTotal: 0, alineacionMinisterial: +10 },
                descripcionEfecto: '0 pts · +10% alineación'
            },
            {
                texto: 'Ofrecerle un visado como compensación silenciosa',
                efecto: { scoreTotal: -30, alineacionMinisterial: +5 },
                descripcionEfecto: '-30 pts · +5% alineación'
            },
            {
                texto: 'Tuitear contra él desde la cuenta institucional',
                efecto: { scoreTotal: +20, alineacionMinisterial: 0, strikes: 1 },
                descripcionEfecto: '+20 pts · +1 strike'
            }
        ]
    },
    {
        id: 'aviso_cni',
        dispatchMinDia: 4,
        titulo: 'Aviso Confidencial del CNI',
        descripcion: 'Uno de los perfiles antiterroristas que aprobaste el lunes ha sido detenido preparando un atentado en Atocha. La prensa aún no lo sabe.',
        opciones: [
            {
                texto: 'Alegar que obedecías directrices superiores',
                efecto: { scoreTotal: 0, alineacionMinisterial: -5 },
                descripcionEfecto: '0 pts · -5% alineación'
            },
            {
                texto: 'Felicitar al CNI en Twitter por su eficacia',
                efecto: { scoreTotal: +10, alineacionMinisterial: +10 },
                descripcionEfecto: '+10 pts · +10% alineación'
            },
            {
                texto: 'Aprobar también a su hermano (también en cola)',
                efecto: { scoreTotal: +60, alineacionMinisterial: -15, strikes: 1 },
                descripcionEfecto: '+60 pts · -15% alineación · +1 strike'
            }
        ]
    },
    {
        id: 'trama_citas',
        dispatchMinDia: 3,
        titulo: 'La Trama de las Citas Revendidas',
        descripcion: 'Unos investigadores destapan que una mafia está revendiendo citas gratuitas de Extranjería a 60€. Modus operandi: un bot en Python genera NIFs masivamente, reserva todas las citas disponibles, y cuando alguien paga, se cancela en el último segundo y se vuelve a reservar con el NIF bueno. Nadie en el Ministerio había pensado en un captcha.',
        opciones: [
            {
                texto: 'Tapar el asunto — mala prensa para el Ministro',
                efecto: { scoreTotal: +20, alineacionMinisterial: +10 },
                descripcionEfecto: '+20 pts · +10% alineación'
            },
            {
                texto: 'Proponer añadir un captcha a la web',
                efecto: { scoreTotal: -5, alineacionMinisterial: 0 },
                descripcionEfecto: '-5 pts · (tu email queda sin respuesta 11 semanas)'
            },
            {
                texto: 'Denunciar públicamente a la UCO',
                efecto: { scoreTotal: -30, alineacionMinisterial: -5 },
                descripcionEfecto: '-30 pts · -5% alineación · el jefe te deja de hablar'
            },
            {
                texto: 'Pedir tu comisión a los revendedores',
                efecto: { scoreTotal: +80, alineacionMinisterial: -10, strikes: 1 },
                descripcionEfecto: '+80 pts · -10% alineación · +1 strike'
            }
        ]
    },
    {
        id: 'tertulia_tv',
        dispatchMinDia: 2,
        titulo: 'Invitación a "La Noche en 24h"',
        descripcion: 'Te invitan de tertuliano a explicar "los éxitos del nuevo modelo de acogida". Es en prime time.',
        opciones: [
            {
                texto: 'Ir con mensaje oficial',
                efecto: { scoreTotal: +15, alineacionMinisterial: +15 },
                descripcionEfecto: '+15 pts · +15% alineación'
            },
            {
                texto: 'Ir y soltar una frase polémica para viralizar',
                efecto: { scoreTotal: +40, alineacionMinisterial: -10 },
                descripcionEfecto: '+40 pts · -10% alineación'
            },
            {
                texto: 'Declinar educadamente',
                efecto: { scoreTotal: 0, alineacionMinisterial: -5 },
                descripcionEfecto: '0 pts · -5% alineación'
            }
        ]
    },
    {
        id: 'operacion_kraken',
        dispatchMinDia: 4,
        titulo: 'Operación Kraken',
        descripcion: 'La Policía Nacional prepara una redada masiva en Lavapiés para mañana a las 6am. Quieren una lista de candidatos que hayas aprobado esta semana para "precintar sus domicilios".',
        opciones: [
            {
                texto: 'Entregar la lista completa',
                efecto: { scoreTotal: +30, alineacionMinisterial: +5 },
                descripcionEfecto: '+30 pts · +5% alineación'
            },
            {
                texto: 'Avisar por Telegram a tres de ellos',
                efecto: { scoreTotal: +80, alineacionMinisterial: -15, strikes: 1 },
                descripcionEfecto: '+80 pts · -15% alineación · +1 strike'
            },
            {
                texto: 'Decir que "no tenéis esos datos, pedídselos al CNI"',
                efecto: { scoreTotal: +10, alineacionMinisterial: -5 },
                descripcionEfecto: '+10 pts · -5% alineación'
            }
        ]
    },
    {
        id: 'manifestacion_puerta',
        dispatchMinDia: 3,
        titulo: 'Concentración en la Puerta',
        descripcion: 'Unos 300 manifestantes bloquean la entrada de la oficina. Unos gritan "FRONTERAS", otros "FASCISTAS". No se entiende bien a quién le gritan.',
        opciones: [
            {
                texto: 'Salir a darles la cara desde el balcón',
                efecto: { scoreTotal: -10, alineacionMinisterial: +10 },
                descripcionEfecto: '-10 pts · +10% alineación'
            },
            {
                texto: 'Esperar que la Policía los disuelva',
                efecto: { scoreTotal: 0, alineacionMinisterial: 0 },
                descripcionEfecto: 'Ningún efecto'
            },
            {
                texto: 'Hacer tiktok burlándote desde tu despacho',
                efecto: { scoreTotal: +30, alineacionMinisterial: -15 },
                descripcionEfecto: '+30 pts · -15% alineación (te haces viral)'
            }
        ]
    },
    {
        id: 'visita_vip',
        dispatchMinDia: 3,
        titulo: 'Recomendación de Arriba',
        descripcion: 'Un diputado del partido del gobierno llama personalmente. Su "sobrina política" necesita que pases el expediente de un tal inversor emiratí. "Es un amigo de la casa, tú ya me entiendes."',
        opciones: [
            {
                texto: 'Pasar el expediente sin preguntar',
                efecto: { scoreTotal: +60, alineacionMinisterial: +10 },
                descripcionEfecto: '+60 pts · +10% alineación'
            },
            {
                texto: 'Pedirle la recomendación por escrito',
                efecto: { scoreTotal: -15, alineacionMinisterial: -15 },
                descripcionEfecto: '-15 pts · -15% alineación (no contesta)'
            },
            {
                texto: 'Grabar la llamada y guardarla para el futuro',
                efecto: { scoreTotal: +40, alineacionMinisterial: 0, strikes: 1 },
                descripcionEfecto: '+40 pts · +1 strike (riesgo)'
            }
        ]
    },
    {
        id: 'fuga_datos',
        dispatchMinDia: 5,
        titulo: 'Filtración en GitHub',
        descripcion: 'Un becario ha subido por error los expedientes de 12.000 solicitantes a un repositorio público. Salen domicilios, fotos y antecedentes. La AEPD amenaza con 20M€ de multa.',
        opciones: [
            {
                texto: 'Echarle la culpa al becario y despedirlo',
                efecto: { scoreTotal: +20, alineacionMinisterial: +10 },
                descripcionEfecto: '+20 pts · +10% alineación'
            },
            {
                texto: 'Asumir responsabilidades tú mismo',
                efecto: { scoreTotal: -40, alineacionMinisterial: +15 },
                descripcionEfecto: '-40 pts · +15% alineación'
            },
            {
                texto: 'Pagar a un hacker para borrar el fork',
                efecto: { scoreTotal: +50, alineacionMinisterial: -5, strikes: 1 },
                descripcionEfecto: '+50 pts · -5% alineación · +1 strike'
            }
        ]
    },
    {
        id: 'informe_acnur',
        dispatchMinDia: 4,
        titulo: 'Informe Crítico de ACNUR',
        descripcion: 'ACNUR publica un informe calificando la política española como "hostil y kafkiana". Viene firmado por 14 ONGs. Adjuntan estadísticas con tu oficina en primer lugar.',
        opciones: [
            {
                texto: 'Rueda de prensa: "los datos son incompletos"',
                efecto: { scoreTotal: +15, alineacionMinisterial: +5 },
                descripcionEfecto: '+15 pts · +5% alineación'
            },
            {
                texto: 'No decir nada, que pase la ola',
                efecto: { scoreTotal: 0, alineacionMinisterial: -5 },
                descripcionEfecto: '0 pts · -5% alineación'
            },
            {
                texto: 'Ofrecer vuestros datos internos a Newtral para "fact-check"',
                efecto: { scoreTotal: -20, alineacionMinisterial: +20 },
                descripcionEfecto: '-20 pts · +20% alineación'
            }
        ]
    },
    {
        id: 'chivato_sindical',
        dispatchMinDia: 4,
        titulo: 'Delegado Sindical',
        descripcion: 'El delegado de CCOO de tu oficina quiere hablar contigo "de cosas raras" que ha visto en tus tramitaciones. Pide una reunión formal.',
        opciones: [
            {
                texto: 'Reunirte y darle largas con buenas palabras',
                efecto: { scoreTotal: +10, alineacionMinisterial: +5 },
                descripcionEfecto: '+10 pts · +5% alineación'
            },
            {
                texto: 'Denunciarlo por "acoso laboral" antes de que él denuncie a ti',
                efecto: { scoreTotal: +50, alineacionMinisterial: -10, strikes: 1 },
                descripcionEfecto: '+50 pts · -10% alineación · +1 strike'
            },
            {
                texto: 'Reconocer los fallos y pedirle consejo',
                efecto: { scoreTotal: -20, alineacionMinisterial: +15 },
                descripcionEfecto: '-20 pts · +15% alineación'
            }
        ]
    },
    {
        id: 'becario_perdido',
        dispatchMinDia: 2,
        titulo: 'Un Becario Con Iniciativa',
        descripcion: 'Un becario de la universidad ha montado por su cuenta una hoja Excel detectando patrones en tus decisiones. La ha impreso y te la ha traído. "Creo que he encontrado cosas raras, no sé."',
        opciones: [
            {
                texto: 'Felicitarlo y archivar su Excel "muy al fondo"',
                efecto: { scoreTotal: +10, alineacionMinisterial: +5 },
                descripcionEfecto: '+10 pts · +5% alineación'
            },
            {
                texto: 'Darle el "contrato indefinido" para que calle',
                efecto: { scoreTotal: -30, alineacionMinisterial: +10 },
                descripcionEfecto: '-30 pts · +10% alineación'
            },
            {
                texto: 'No renovarle la beca y devolverle su Excel rota',
                efecto: { scoreTotal: +20, alineacionMinisterial: -5 },
                descripcionEfecto: '+20 pts · -5% alineación'
            }
        ]
    },
    {
        id: 'auditoria_ue',
        dispatchMinDia: 5,
        titulo: 'Auditoría de Bruselas',
        descripcion: 'La Comisión Europea envía una auditoría sorpresa tras quejas de varios estados miembros sobre "fuga de perfiles". Quieren revisar muestras aleatorias de tus decisiones.',
        opciones: [
            {
                texto: 'Colaborar plenamente, sin reservas',
                efecto: { scoreTotal: -30, alineacionMinisterial: +20 },
                descripcionEfecto: '-30 pts · +20% alineación'
            },
            {
                texto: 'Entregar documentación en catalán (para ganar tiempo)',
                efecto: { scoreTotal: +20, alineacionMinisterial: 0 },
                descripcionEfecto: '+20 pts · (se retrasa 6 meses)'
            },
            {
                texto: 'Alegar "gestión delegada" y derivarles a otro departamento',
                efecto: { scoreTotal: +35, alineacionMinisterial: -10 },
                descripcionEfecto: '+35 pts · -10% alineación'
            }
        ]
    }
];

// Selecciona un evento elegible: no visto y con dispatchMinDia <= día actual
function getEventoAleatorioElegible() {
    if (!gameState) return null;
    const vistos = gameState.eventosVistos || [];
    const elegibles = eventosData.filter(e =>
        !vistos.includes(e.id) &&
        e.dispatchMinDia <= gameState.dia
    );
    if (!elegibles.length) return null;
    return elegibles[Math.floor(Math.random() * elegibles.length)];
}
