<?php
// /taqueria/index.php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

session_start();

/* === Check de sesión === */
if (empty($_SESSION['user_id'])) {
    // guarda a dónde quería entrar para regresar después del login
    $_SESSION['return_to'] = $_SERVER['REQUEST_URI'] ?? '/dashboard.php';

    header('Location: views/login.php');

    exit;
}

/* ===== Conexión a BD ===== */
require_once __DIR__ . '/services/pdo_connection.php';
$db_ok = false;
$db_msg = '';
try {
    $pdo = (new Database())->getConnection();
    if ($pdo instanceof PDO) {
        $db_ok = true;
    }
} catch (Throwable $e) {
    $db_msg = $e->getMessage();
}

/* ===== Asegurar carpetas de uploads ===== */
@mkdir(__DIR__ . '/uploads/productos', 0755, true);
@mkdir(__DIR__ . '/uploads/eventos', 0755, true);

/* ===== KPIs base (valores iniciales) ===== */
$kpi = ['platillos' => 0, 'pedidos_mes' => 0, 'ganancias_mes' => '0.00'];
if ($db_ok) {
    try {
        $kpi['platillos'] = (int)$pdo->query("SELECT COUNT(*) FROM producto WHERE activo=1")->fetchColumn();
        $stmt = $pdo->prepare("
            SELECT COUNT(*) AS pedidos,
                   COALESCE(SUM(CASE WHEN estado='ENTREGADO' THEN monto_total ELSE 0 END),0) AS ganancias
            FROM pedido
            WHERE YEAR(fecha_pedido)=YEAR(CURDATE())
              AND MONTH(fecha_pedido)=MONTH(CURDATE())
        ");
        $stmt->execute();
        $row = $stmt->fetch(PDO::FETCH_ASSOC);
        $kpi['pedidos_mes']   = (int)($row['pedidos'] ?? 0);
        $kpi['ganancias_mes'] = number_format((float)($row['ganancias'] ?? 0), 2, '.', '');
    } catch (Throwable $e) { /* ignore */
    }
}
?>


<!doctype html>
<html lang="es">

<head>
    <meta charset="utf-8">
    <title>Panel de administración · Taquería</title>
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <link rel="stylesheet" href="views/css/admin-dashboard.css">
</head>

<body>
    <header class="topbar">
        <div class="brand">
            <span class="logo">🌮</span>
            <strong>Taquería · Admin</strong>
        </div>

        <!-- Botón de menú para móvil -->
        <button class="btn ghost menu-toggle" type="button" aria-expanded="false" aria-controls="topbarMenu">
            ☰ Menú
        </button>

        <nav class="actions" id="topbarMenu">
            <!-- NUEVOS enlaces -->
            <a class="btn ghost" href="views/ver_historial.php">Pedidos</a>
            <a class="btn ghost" href="views/admin/config_envio.php">Envío</a>
            <a class="btn ghost" href="views/ver_historial_agenda.php">Agendas</a>
            <a class="btn ghost" href="views/perfil.php">Usuarios</a>

            <!-- ya existente -->
            <a class="btn ghost" href="views/menu.php" target="_blank">Ver menú público</a>

            <!-- logout por POST -->
            <form action="views/logout.php" method="post" style="display:inline;">
                <button type="submit" class="btn ghost danger" title="Cerrar sesión">Cerrar sesión</button>
            </form>
        </nav>
    </header>



    <?php if (!$db_ok): ?>
        <div class="alert error">
            <strong>Sin conexión a la base de datos.</strong>
            <span><?= htmlspecialchars($db_msg ?: 'Revisa Services/pdo_connection.php') ?></span>
        </div>
    <?php else: ?>
        <div class="alert ok">
            <span class="dot"></span> Conectado a la base de datos.
        </div>

        <div class="alert ok">
            <span class="dot"></span>
            Usuario conectado<?= isset($_SESSION['nombre']) ? ': ' . htmlspecialchars($_SESSION['nombre']) : '' ?>.
        </div>


        <!-- ===== KPIs (ahora más chicos) ===== -->
        <section class="wrap">
            <div class="kpis kpis-compact">
                <div class="kpi kpi-red">
                    <div class="kpi-icon" aria-hidden="true">
                        <svg viewBox="0 0 24 24" width="18" height="18">
                            <path fill="currentColor" d="M4 10h16a1 1 0 0 1 1 1v2H3v-2a1 1 0 0 1 1-1Zm-1 6h18a1 1 0 1 1 0 2H3a1 1 0 1 1 0-2Zm12-9a3 3 0 1 0-6 0v2h6V7Z" />
                        </svg>
                    </div>
                    <div class="kpi-body">
                        <div class="kpi-label">Platillos activos</div>
                        <div class="kpi-value" id="kpi-platillos"><?= number_format($kpi['platillos']) ?></div>
                    </div>
                </div>

                <div class="kpi kpi-orange">
                    <div class="kpi-icon" aria-hidden="true">
                        <svg viewBox="0 0 24 24" width="18" height="18">
                            <path fill="currentColor" d="M3 6a2 2 0 0 1 2-2h3l1 2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6Zm2 3v9h14V8H9.236l-1-2H5v3Z" />
                        </svg>
                    </div>
                    <div class="kpi-body">
                        <div class="kpi-label">Pedidos del mes</div>
                        <div class="kpi-value" id="kpi-pedidos"><?= number_format($kpi['pedidos_mes']) ?></div>
                    </div>
                </div>

                <div class="kpi kpi-mustard kpi-wide">
                    <div class="kpi-left">
                        <div class="kpi-icon" aria-hidden="true">
                            <svg viewBox="0 0 24 24" width="18" height="18">
                                <path fill="currentColor" d="M12 3a1 1 0 0 1 1 1v1.06a5.5 5.5 0 1 1-2 0V4a1 1 0 0 1 1-1Zm0 6a3.5 3.5 0 1 0 0 7h5a1 1 0 1 1 0 2h-5a5.5 5.5 0 1 1 0-11Z" />
                            </svg>
                        </div>
                        <div class="kpi-body">
                            <div class="kpi-label">Ganancias del mes</div>
                            <div class="kpi-value" id="kpi-ganancias">$<?= number_format((float)$kpi['ganancias_mes'], 2) ?></div>
                        </div>
                    </div>

                    <!-- Aside con mes y flechas -->
                    <div class="kpi-aside">
                        <div class="month-label" id="monthLabel">—</div>
                        <div class="month-nav">
                            <button class="nav-btn" id="btnPrev" aria-label="Mes anterior" title="Mes anterior">
                                <svg viewBox="0 0 24 24" width="16" height="16">
                                    <path fill="currentColor" d="M15 19l-7-7 7-7" />
                                </svg>
                            </button>
                            <button class="nav-btn" id="btnNext" aria-label="Mes siguiente" title="Mes siguiente">
                                <svg viewBox="0 0 24 24" width="16" height="16">
                                    <path fill="currentColor" d="M9 5l7 7-7 7" />
                                </svg>
                            </button>
                        </div>
                    </div>
                </div>

        </section>

        <!-- ===== Donuts (Entregados / Cancelados / Pendientes) ===== -->
        <section class="wrap">
            <div class="ring-grid ring-grid-3">
                <div class="kpi-ring ring-red">
                    <div class="ring" id="ring-entregados" style="--pct:0; --color:#B92117;">
                        <div class="ring-inner"></div>
                        <div class="ring-label"><span id="pct-entregados">0%</span><small>Entregados</small></div>
                    </div>
                </div>
                <div class="kpi-ring ring-orange">
                    <div class="ring" id="ring-cancelados" style="--pct:0; --color:#D35400;">
                        <div class="ring-inner"></div>
                        <div class="ring-label"><span id="pct-cancelados">0%</span><small>Cancelados</small></div>
                    </div>
                </div>
                <div class="kpi-ring ring-mustard">
                    <div class="ring" id="ring-pendientes" style="--pct:0; --color:#D4AC0D;">
                        <div class="ring-inner"></div>
                        <div class="ring-label"><span id="pct-pendientes">0%</span><small>Pendientes</small></div>
                    </div>
                </div>
            </div>
        </section>
    <?php endif; ?>

    <main class="wrap">
        <section class="grid">
            <a class="card card-red" href="views/admin/categorias.php">
                <div class="icon">
                    <svg viewBox="0 0 24 24" width="28" height="28" aria-hidden="true">
                        <path fill="currentColor" d="M3 5h8l2 3h8v11a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm1 2v12h16V10h-7.382a1 1 0 0 1-.832-.445L9.764 7H4Z" />
                    </svg>
                </div>
                <div class="body">
                    <h3>Categorías</h3>
                    <p>Crear, editar y eliminar categorías del menú.</p>
                    <span class="link">Entrar</span>
                </div>
            </a>

            <a class="card card-orange" href="views/admin/productos.php">
                <div class="icon">
                    <svg viewBox="0 0 24 24" width="28" height="28" aria-hidden="true">
                        <path fill="currentColor" d="M4 7l8-4 8 4v10l-8 4-8-4V7Zm8-2.118L6.236 7 12 9.882 17.764 7 12 4.882ZM6 8.618v6.764L11 18.5v-6.764L6 8.618Zm12 0-5 3.118V18.5l5-3.118V8.618Z" />
                    </svg>
                </div>
                <div class="body">
                    <h3>Productos</h3>
                    <p>CRUD de platillos por categoría, imágenes y precios.</p>
                    <span class="link">Entrar</span>
                </div>
            </a>

            <a class="card card-mustard" href="views/admin/productos_evento.php">
                <div class="icon">
                    <svg viewBox="0 0 24 24" width="28" height="28" aria-hidden="true">
                        <path fill="currentColor" d="M7 2h2v2h6V2h2v2h3a2 2 0 0 1 2 2v13a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V6a2 2 0 0 1 2-2h3V2Zm13 7H4v10a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V9Z" />
                    </svg>
                </div>
                <div class="body">
                    <h3>Paquetes de evento</h3>
                    <p>Gestiona banquetes/taquizas para eventos.</p>
                    <span class="link">Entrar</span>
                </div>
            </a>
        </section>
    </main>

    <footer class="footer">
        <small>© <?= date('Y') ?> Taquería — Panel de administración</small>
    </footer>

    <?php if ($db_ok): ?>
        <script defer src="views/js/dashboard.js"></script>
    <?php endif; ?>
</body>

</html>