// Papeles Para Todos - Generación de pila de candidatos por día

// Genera la pila del día consumiendo del orden global de la partida,
// garantizando que un mismo candidato no aparezca dos veces en la misma partida.
function generarPilaDia(dia) {
    if (!gameState || !Array.isArray(gameState.ordenCandidatos) || !gameState.ordenCandidatos.length) {
        // Fallback defensivo: si por algún motivo no hay orden, usamos shuffle ad-hoc
        return shuffleArrayRandom(candidatosData.map(c => c.id)).slice(0, CANDIDATOS_POR_DIA);
    }

    const start = (dia - 1) * CANDIDATOS_POR_DIA;
    const end = start + CANDIDATOS_POR_DIA;
    let pila = gameState.ordenCandidatos.slice(start, end);

    // Si por tamaño del pool no hay suficientes para cubrir el día,
    // rellenamos con IDs ya usados en días previos (último recurso).
    if (pila.length < CANDIDATOS_POR_DIA) {
        const faltan = CANDIDATOS_POR_DIA - pila.length;
        const usados = gameState.ordenCandidatos.slice(0, start);
        const relleno = shuffleArrayRandom(usados).slice(0, faltan);
        pila = pila.concat(relleno);
    }
    return pila;
}

function getCandidatoActual() {
    if (!gameState || !gameState.pilaDia.length) return null;
    if (gameState.candidatoIndex >= gameState.pilaDia.length) return null;
    const id = gameState.pilaDia[gameState.candidatoIndex];
    return getCandidatoById(id);
}

function quedanCandidatos() {
    return gameState && gameState.candidatoIndex < gameState.pilaDia.length;
}

function avanzarCandidato() {
    if (!gameState) return;
    gameState.candidatoIndex++;
}
