<?php
require_once __DIR__ . '/../config/app.php';
// Si NO está logueado, mandar al login (pero permitir estar en login.php)
if (!is_logged_in() && (basename($_SERVER['SCRIPT_NAME'] ?? '') !== 'login.php')) {
  header('Location: ' . asset('views/login.php'));
  exit;
}

/* === LOGOUT === */
if (isset($_GET['cerrar_sesion'])) {
  // Vaciar variables de sesión
  $_SESSION = [];

  // Borrar la cookie de sesión (con los mismos parámetros con que fue creada)
  if (ini_get('session.use_cookies')) {
    $p = session_get_cookie_params();

    // Borro con los params actuales…
    setcookie(session_name(), '', time() - 42000, $p['path'], $p['domain'], $p['secure'], $p['httponly']);

    // …y también fuerzo el path del proyecto por si difiere
    setcookie(
      session_name(),
      '',
      time() - 42000,
      '/academy',
      '',
      (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'),
      true
    );
  }

  // Destruir sesión
  session_destroy();

  // Redirigir al login
  $loginUrl = function_exists('asset') ? asset('views/login.php') : '/academy/views/login.php';
  header('Location: ' . $loginUrl);
  exit;
}

require_once __DIR__ . '/../controllers/login.controller.php';
require_once __DIR__ . '/../models/login.model.php';

// Usuario y menús
$user = $_SESSION['usuario'] ?? null;
$menuUsuario = $user ? LoginModel::mdlObtenerMenuUsuario($user) : [];
?>

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

<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title><?= htmlspecialchars($page_title ?? '#VeladeroDigital_') ?></title>

  <!-- Syncfusion material theme -->
  <link rel="stylesheet" href="<?= asset('lib/syncfusion-31.1.17/material.css') ?>" type="text/css" />
  <!-- Bootstrap -->
  <link rel="stylesheet" href="<?= asset('lib/bootstrap-5.3.8/css/bootstrap.min.css') ?>">
  <!-- AOS y estilos -->
  <link rel="stylesheet" href="<?= asset('lib/aos@2.3.1/aos.css') ?>">
  <link rel="stylesheet" href="<?= asset('css/styles.css') ?>">
  <!-- Bootstrap Icons -->
  <link rel="stylesheet" href="<?= asset('assets/bootstrap-icons-1.13.1/bootstrap-icons.css') ?>">

  <link rel="icon" href="<?= asset('assets/user.png') ?>">

  <style>
    /* Compensa navbar fija */
    body {
      padding-top: 56px;
    }
  </style>
</head>

<body class="login-bg">
  <header class="fixed-top">
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark" data-bs-theme="dark">
      <div class="container">
        <a class="navbar-brand fw-semibold" href="/academy/index.php">#VeladeroDigital_</a>

        <?php if ($user): ?>
          <!-- Toggler responsive -->
          <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#menuSuperior"
            aria-controls="menuSuperior" aria-expanded="false" aria-label="Mostrar menú">
            <span class="navbar-toggler-icon"></span>
          </button>

          <div class="collapse navbar-collapse" id="menuSuperior">

            <!-- Menú principal (izquierda) -->
            <ul class="navbar-nav me-auto mb-2 mb-lg-0">

              <?php foreach ($menuUsuario as $menu): ?>
                <?php
                $subMenuUsuario = LoginModel::mdlObtenerSubMenuUsuario((int)$menu->modulo_id, $user);
                $tieneHijos = !empty($subMenuUsuario);

                // href para navegación normal (si hay vista)
                $hrefPadre  = !empty($menu->vista) ? asset('views/' . ltrim($menu->vista, '/')) : '#';
                // data-vista para AJAX (CargarContenido)
                $dataVistaPadre = !empty($menu->vista) ? 'vistas/' . htmlspecialchars($menu->vista) : '';
                ?>

                <?php if ($tieneHijos): ?>
                  <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle"
                      href="#"
                      id="menu<?= (int)$menu->modulo_id ?>"
                      role="button"
                      data-bs-toggle="dropdown"
                      aria-expanded="false">
                      <i class="<?= htmlspecialchars($menu->icon_menu) ?> me-1"></i>
                      <?= htmlspecialchars($menu->modulo) ?>
                    </a>

                    <ul class="dropdown-menu" aria-labelledby="menu<?= (int)$menu->modulo_id ?>">
                      <?php foreach ($subMenuUsuario as $sub): ?>
                        <?php
                        $hrefHijo = asset('views/' . ltrim($sub->vista, '/'));
                        $dataVistaHijo = 'vistas/' . htmlspecialchars($sub->vista);
                        ?>
                        <li>
                          <a class="dropdown-item nav-ajax"
                            href="<?= $hrefHijo ?>"
                            data-vista="<?= $dataVistaHijo ?>">
                            <i class="<?= htmlspecialchars($sub->icon_menu) ?> me-2"></i>
                            <?= htmlspecialchars($sub->modulo) ?>
                          </a>
                        </li>
                      <?php endforeach; ?>
                    </ul>
                  </li>

                <?php else: ?>
                  <li class="nav-item">
                    <a class="nav-link nav-ajax"
                      href="<?= $hrefPadre ?>"
                      <?= $dataVistaPadre ? 'data-vista="' . $dataVistaPadre . '"' : '' ?>>
                      <i class="<?= htmlspecialchars($menu->icon_menu) ?> me-1"></i>
                      <?= htmlspecialchars($menu->modulo) ?>
                    </a>
                  </li>
                <?php endif; ?>
              <?php endforeach; ?>
            </ul>

            <!-- Dropdown de usuario (derecha) -->
            <ul class="navbar-nav ms-auto mb-2 mb-lg-0">
              <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle d-flex align-items-center"
                  href="#"
                  id="userMenu"
                  role="button"
                  data-bs-toggle="dropdown"
                  aria-expanded="false">
                  <i class="bi bi-person-circle me-2"></i>
                  <span><?= htmlspecialchars($_SESSION['nombre'] ?? $user) ?></span>
                </a>

                <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userMenu">
                  <li>
                    <a class="dropdown-item" href="/academy/views/perfil.php">
                      <i class="bi bi-person-lines-fill me-2"></i> Perfil
                    </a>
                  </li>
                  <li>
                    <hr class="dropdown-divider">
                  </li>
                  <li>
                    <a class="dropdown-item" href="?cerrar_sesion=1">
                      <i class="bi bi-box-arrow-right me-2"></i> Desconectar
                    </a>
                  </li>
                </ul>
              </li>
            </ul>

          </div>
        <?php else: ?>
          <!-- Sin usuario: botón Iniciar sesión -->
          <?php if (($_SERVER['SCRIPT_NAME'] ?? '') !== '/academy/views/login.php'): ?>
            <a class="btn btn-outline-light btn-sm ms-auto" href="/academy/views/login.php">
              <i class="bi bi-box-arrow-in-right me-1"></i> Iniciar sesión
            </a>
          <?php endif; ?>
        <?php endif; ?>
      </div>
    </nav>
  </header>

  <main>