<?php
declare(strict_types=1);

require_once __DIR__ . '/includes/bootstrap.php';

$ctx = omr_context('modulo');
$conn = $ctx['conn'];
$idConcurso = (int)$ctx['id_concurso'];
$idGrupoFijo = (int)$ctx['id_grupo_fijo'];
$idSalonFijo = (int)$ctx['id_salon_fijo'];
$isAdmin = (bool)$ctx['is_admin'];

$totalClaves = 0;
$totalProcesados = 0;
$totalObservados = 0;
$totalAplicados = 0;

$stmt = mysqli_prepare($conn, "SELECT COUNT(*) total FROM concurso_omr_claves WHERE id_concurso = ?");
if ($stmt) {
    mysqli_stmt_bind_param($stmt, 'i', $idConcurso);
    mysqli_stmt_execute($stmt);
    $row = mysqli_fetch_assoc(mysqli_stmt_get_result($stmt));
    $totalClaves = (int)($row['total'] ?? 0);
    mysqli_stmt_close($stmt);
}

$sqlStats = "
    SELECT
        COUNT(*) total,
        SUM(CASE WHEN estado='PROCESADO' THEN 1 ELSE 0 END) procesados,
        SUM(CASE WHEN estado='OBSERVADO' THEN 1 ELSE 0 END) observados,
        SUM(CASE WHEN aplicado_resultado=1 THEN 1 ELSE 0 END) aplicados
    FROM concurso_omr_procesamientos
    WHERE id_concurso = ?
";

if ($idGrupoFijo > 0) {
    $sqlStats .= " AND id_grupo = ? ";
}

if ($idSalonFijo > 0) {
    $sqlStats .= " AND id_salon = ? ";
}

$stmt = mysqli_prepare($conn, $sqlStats);
if ($stmt) {
    if ($idGrupoFijo > 0 && $idSalonFijo > 0) {
        mysqli_stmt_bind_param($stmt, 'iii', $idConcurso, $idGrupoFijo, $idSalonFijo);
    } elseif ($idGrupoFijo > 0) {
        mysqli_stmt_bind_param($stmt, 'ii', $idConcurso, $idGrupoFijo);
    } else {
        mysqli_stmt_bind_param($stmt, 'i', $idConcurso);
    }

    mysqli_stmt_execute($stmt);
    $row = mysqli_fetch_assoc(mysqli_stmt_get_result($stmt));
    $totalProcesados = (int)($row['total'] ?? 0);
    $totalObservados = (int)($row['observados'] ?? 0);
    $totalAplicados = (int)($row['aplicados'] ?? 0);
    mysqli_stmt_close($stmt);
}

omr_page_header('Modulo OMR opcional', $ctx);
?>

<div class="card info">
    Este modulo no reemplaza la correccion manual. Si no tienes escaner, usa <strong>Calificaciones</strong> como siempre.
    Si tienes escaner, procesa fichas OMR y los resultados validos se guardan en el ranking final.
</div>

<section class="grid">
    <div class="card">
        <h3>Claves registradas</h3>
        <p style="font-size:32px;margin:6px 0;font-weight:900;"><?php echo (int)$totalClaves; ?></p>
        <p class="muted">Respuestas correctas por grado y tipo de prueba.</p>
    </div>
    <div class="card">
        <h3>Lecturas OMR</h3>
        <p style="font-size:32px;margin:6px 0;font-weight:900;"><?php echo (int)$totalProcesados; ?></p>
        <p class="muted">Hojas procesadas por imagen, PDF o ZIP.</p>
    </div>
    <div class="card">
        <h3>Aplicados al ranking</h3>
        <p style="font-size:32px;margin:6px 0;font-weight:900;"><?php echo (int)$totalAplicados; ?></p>
        <p class="muted">Resultados OMR guardados en calificaciones finales.</p>
    </div>
    <div class="card">
        <h3>Observados</h3>
        <p style="font-size:32px;margin:6px 0;font-weight:900;"><?php echo (int)$totalObservados; ?></p>
        <p class="muted">Fichas que necesitan revision manual.</p>
    </div>
</section>

<section class="grid">
    <?php if ($isAdmin): ?>
        <a class="action" href="clave.php?id_concurso=<?php echo $idConcurso; ?>">
            <h3>Registrar claves OMR</h3>
            <p>Carga respuestas correctas por grado y tipo A/B/C/D.</p>
        </a>
    <?php endif; ?>

    <a class="action" href="ficha_imprimir.php?id_concurso=<?php echo $idConcurso; ?>" target="_blank">
        <h3>Imprimir ficha</h3>
        <p>Genera la ficha A5 con DNI, nivel, grado, tipo y respuestas.</p>
    </a>

    <a class="action" href="procesar.php?id_concurso=<?php echo $idConcurso; ?>">
        <h3>Procesar escaneos</h3>
        <p>Sube imagenes, PDFs o ZIP. Lo correcto pasa al ranking; lo dudoso queda observado.</p>
    </a>

    <a class="action" href="resultados.php?id_concurso=<?php echo $idConcurso; ?>">
        <h3>Revisar lecturas</h3>
        <p>Consulta procesados, observados y errores de lectura OMR.</p>
    </a>

    <a class="action" href="../calificaciones.php?id_concurso=<?php echo $idConcurso; ?>">
        <h3>Correccion manual</h3>
        <p>Usala cuando no hay escaner o para corregir casos observados.</p>
    </a>
</section>

<?php omr_page_footer(); ?>
