<?php
ini_set('session.gc_maxlifetime', 86400);
session_set_cookie_params(86400);
session_save_path("/home/evolucionamos/public_html/mejora/sessions");
session_start();
if (empty($_SESSION['adm']) || ($_SESSION['role'] != 1 && $_SESSION['role'] != 3)) {
    header("Location: index.php"); exit;
}
require_once '../app/models/votacion.php';
require_once '../app/helpers/csrf.php';

$model      = new \app\models\votacion();
$votaciones = $model->listar();
// Hotfix: precargar totales en batch (elimina N+1)
$_vids   = array_column((array)$votaciones, 'id');
$_totals = !empty($_vids) ? $model->totalesVotacionesBatch($_vids) : [];

$estadoInfo = [
    'configuracion' => ['label'=>'Configuración','cls'=>'secondary'],
    'abierta'       => ['label'=>'Abierta',       'cls'=>'success'],
    'cerrada'       => ['label'=>'Cerrada',        'cls'=>'warning'],
    'finalizada'    => ['label'=>'Finalizada',     'cls'=>'dark'],
];
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <?php require '../head.php'; ?>
    <style>
        body { background:#f8f9fa !important; background-image:none !important; font-family:'Segoe UI',Tahoma,Verdana,sans-serif; }
        .navbar-enterprise { background:#fff !important; border-bottom:2px solid #17c1e8; padding:12px 0; }
        .card-v { border:none; border-radius:15px; box-shadow:0 4px 15px rgba(0,0,0,0.06); transition:transform .2s; }
        .card-v:hover { transform:translateY(-3px); box-shadow:0 8px 25px rgba(0,0,0,0.1); }
        .badge-estado { font-size:.8em; padding:5px 12px; border-radius:15px; font-weight:600; }
        .btn-res { border-radius:8px; font-weight:700; font-size:.78em; padding:5px 12px; text-transform:uppercase; letter-spacing:.5px; }
        .empty-state { text-align:center; padding:60px 20px; color:#aaa; }
        .action-bar { background:#f8f9fa; border-top:1px solid #eee; padding:10px 16px; border-radius:0 0 15px 15px; margin:0 -1px -1px; }
        .card-v.abierta { border-left:4px solid #28a745; }
        .card-v.cerrada { border-left:4px solid #ffc107; }
        .live-dot { width:8px;height:8px;border-radius:50%;background:#28a745;display:inline-block;animation:pulse 1.5s infinite;margin-right:4px; }
        @keyframes pulse { 0%,100%{opacity:1;} 50%{opacity:.4;} }
    </style>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-enterprise mb-4">
    <div style="max-width:1400px;margin:0 auto;padding:0 28px;">
        <img src="../assets/images/logo.png" style="height:48px;" alt="Logo">
        <span class="ms-3 fw-bold" style="color:#2b5a9e;font-size:1.1em;">CONTROL DE VOTACIONES</span>
        <div class="ms-auto d-flex gap-2">
            <a href="votaciones.php" class="btn btn-sm btn-res" style="background:#17c1e8;color:#fff;border:none;">+ Nueva Votación</a>
            <a href="admin.php" class="btn btn-sm btn-outline-secondary btn-res">← Panel</a>
        </div>
    </div>
</nav>

<div class="container">
    <?php if (isset($_GET['success'])): ?>
        <div class="alert alert-success alert-dismissible fade show">
            <?php echo htmlspecialchars($_GET['success']); ?>
            <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
        </div>
    <?php endif; ?>
    <?php if (isset($_GET['error'])): ?>
        <div class="alert alert-danger alert-dismissible fade show">
            <?php echo htmlspecialchars($_GET['error']); ?>
            <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
        </div>
    <?php endif; ?>

    <?php if (empty($votaciones)): ?>
        <div class="empty-state">
            <i class="fas fa-vote-yea fa-3x mb-3"></i>
            <h5>No hay votaciones registradas</h5>
            <p>Cree la primera desde <a href="votaciones.php">Gestionar Votaciones</a>.</p>
        </div>
    <?php else: ?>
        <div class="row g-3">
            <?php foreach ($votaciones as $v):
                $ei            = $estadoInfo[$v->estado];
                $_t            = $_totals[$v->id] ?? (object)['total_votos'=>0,'num_candidatos'=>0,'participantes'=>(object)['votaron'=>0]];
                $totalVotos    = $_t->total_votos;
                $prt           = $_t->participantes;
                $numCandidatos = $_t->num_candidatos;
                $esAbierta     = ($v->estado === 'abierta');
                $esCerrada     = ($v->estado === 'cerrada');
                $esConfig      = ($v->estado === 'configuracion');
            ?>
                <div class="col-md-6 col-lg-4">
                    <div class="card card-v h-100 <?php echo $v->estado; ?>">
                        <div class="card-body p-4">
                            <!-- Encabezado -->
                            <div class="d-flex justify-content-between align-items-start mb-2">
                                <h6 class="fw-bold mb-0" style="color:#2b5a9e;font-size:.9em;line-height:1.3;">
                                    <?php if ($esAbierta): ?>
                                        <span class="live-dot"></span>
                                    <?php endif; ?>
                                    <?php echo htmlspecialchars($v->titulo); ?>
                                </h6>
                                <span class="badge badge-estado bg-<?php echo $ei['cls']; ?>"><?php echo $ei['label']; ?></span>
                            </div>

                            <?php if (!empty($v->pregunta)): ?>
                                <p class="text-muted mb-2" style="font-size:.78em;font-style:italic;">
                                    <?php echo htmlspecialchars(mb_substr($v->pregunta, 0, 80)); ?>
                                </p>
                            <?php endif; ?>

                            <!-- KPIs mini -->
                            <div class="row g-1 mb-3" style="font-size:.78em;">
                                <div class="col-4 text-center">
                                    <div class="fw-bold" style="font-size:1.3em;color:#2b5a9e;"><?php echo number_format($totalVotos,0,',','.'); ?></div>
                                    <div class="text-muted">Votos</div>
                                </div>
                                <div class="col-4 text-center">
                                    <div class="fw-bold" style="font-size:1.3em;color:#17c1e8;"><?php echo $numCandidatos; ?></div>
                                    <div class="text-muted">Candidatos</div>
                                </div>
                                <div class="col-4 text-center">
                                    <div class="fw-bold" style="font-size:1.3em;color:#2dce89;"><?php echo $prt ? $prt->votaron : 0; ?></div>
                                    <div class="text-muted">Votaron</div>
                                </div>
                            </div>

                            <!-- Botones de resultados -->
                            <?php if ($v->estado !== 'configuracion' && $numCandidatos > 0): ?>
                                <div class="d-flex gap-1 flex-wrap mb-2">
                                    <a href="zona.php?vid=<?php echo $v->id; ?>" class="btn btn-sm btn-res"
                                       style="background:#2b5a9e;color:#fff;border:none;">
                                        <i class="fas fa-chart-bar me-1"></i>Resultados
                                    </a>
                                    <a href="total.php?vid=<?php echo $v->id; ?>" class="btn btn-sm btn-res"
                                       style="background:#17c1e8;color:#fff;border:none;">
                                        <i class="fas fa-globe me-1"></i>Global
                                    </a>
                                    <a href="generar_reporte.php?vid=<?php echo $v->id; ?>" target="_blank"
                                       class="btn btn-sm btn-res btn-dark">
                                        <i class="fas fa-file-pdf me-1"></i>PDF
                                    </a>
                                    <?php if ($esAbierta): ?>
                                        <a href="votacion_proyeccion.php?vid=<?php echo $v->id; ?>">
                                            📡 Proyectar
                                        </a>
                                    <?php endif; ?>
                                </div>
                            <?php else: ?>
                                <p class="text-muted mb-2" style="font-size:.78em;">
                                    <?php echo $esConfig ? 'En configuración — sin resultados aún.' : 'Sin candidatos cargados.'; ?>
                                </p>
                            <?php endif; ?>
                        </div>

                        <!-- Barra de acciones de estado -->
                        <div class="action-bar">
                            <div class="d-flex gap-1 align-items-center flex-wrap">
                                <small class="text-muted me-1" style="font-size:.7em;">ESTADO:</small>

                                <?php if ($esConfig && $numCandidatos > 0): ?>
                                    <form action="../app/controllers/administradores/votacionController.php" method="post"
                                          onsubmit="return confirm('¿Abrir votación?');" style="display:inline;">
                                        <?php echo csrfField(); ?>
                                        <input type="hidden" name="accion" value="cambiar_estado">
                                        <input type="hidden" name="id" value="<?php echo $v->id; ?>">
                                        <input type="hidden" name="estado" value="abierta">
                                        <input type="hidden" name="redir" value="resultados">
                                        <button class="btn btn-sm btn-res btn-success">🟢 Abrir</button>
                                    </form>
                                <?php elseif ($esAbierta): ?>
                                    <form action="../app/controllers/administradores/votacionController.php" method="post"
                                          onsubmit="return confirm('¿Cerrar votación?');" style="display:inline;">
                                        <?php echo csrfField(); ?>
                                        <input type="hidden" name="accion" value="cambiar_estado">
                                        <input type="hidden" name="id" value="<?php echo $v->id; ?>">
                                        <input type="hidden" name="estado" value="cerrada">
                                        <input type="hidden" name="redir" value="resultados">
                                        <button class="btn btn-sm btn-res btn-warning">⏸ Cerrar</button>
                                    </form>
                                <?php elseif ($esCerrada): ?>
                                    <form action="../app/controllers/administradores/votacionController.php" method="post"
                                          onsubmit="return confirm('¿Reabrir?');" style="display:inline;">
                                        <?php echo csrfField(); ?>
                                        <input type="hidden" name="accion" value="cambiar_estado">
                                        <input type="hidden" name="id" value="<?php echo $v->id; ?>">
                                        <input type="hidden" name="estado" value="abierta">
                                        <input type="hidden" name="redir" value="resultados">
                                        <button class="btn btn-sm btn-res btn-outline-success">↩ Reabrir</button>
                                    </form>
                                    <form action="../app/controllers/administradores/votacionController.php" method="post"
                                          onsubmit="return confirm('¿Finalizar? Irreversible.');" style="display:inline;">
                                        <?php echo csrfField(); ?>
                                        <input type="hidden" name="accion" value="cambiar_estado">
                                        <input type="hidden" name="id" value="<?php echo $v->id; ?>">
                                        <input type="hidden" name="estado" value="finalizada">
                                        <input type="hidden" name="redir" value="resultados">
                                        <button class="btn btn-sm btn-res btn-dark">🏁 Finalizar</button>
                                    </form>
                                <?php else: ?>
                                    <span class="text-muted" style="font-size:.78em;">✔ Finalizada</span>
                                <?php endif; ?>

                                <a href="votacion_detalle.php?id=<?php echo $v->id; ?>"
                                   class="btn btn-sm btn-res btn-outline-secondary ms-auto">
                                    <i class="fas fa-cog"></i>
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
            <?php endforeach; ?>
        </div>
    <?php endif; ?>
</div>

<footer class="mt-5 py-3 border-top text-center text-muted" style="font-size:.82em;">
    <p>FYCLS S.A.S — Brújula Virtual</p>
</footer>
</body>
</html>
