<?php
/**
 * Router Principal del Admin
 * 
 * Punto de entrada único para todas las páginas del admin
 * Maneja el routing según el parámetro ?page=
 */

require_once '../includes/auth.php';
requireLogin();

require_once '../includes/db.php';
require_once '../includes/functions.php';

// Manejar peticiones de API (como regenerar_token)
if (isset($_GET['page']) && $_GET['page'] === 'regenerar_token') {
    require_once __DIR__ . '/pages/regenerar_token.php';
    exit;
}

// Determinar qué página cargar
$page = $_GET['page'] ?? 'resumen';

// Mapeo de páginas permitidas
$allowed_pages = [
    'resumen' => 'Resumen',
    'invitados' => 'Invitados',
    'agregar' => 'Añadir Invitado',
    'editar' => 'Editar Invitado',
    'eliminar' => 'Eliminar Invitado',
    'tracklist' => 'Tracklist',
    'configuracion' => 'Configuración',
    'invitacion' => 'Invitación Digital',
    'usuarios' => 'Usuarios',
    'informacion' => 'Información',
    'cambiar_password' => 'Cambiar contraseña'
];

// Validar que la página existe
if (!isset($allowed_pages[$page])) {
    $page = 'resumen';
}

// Usuarios solo para Superadmin y Admin; Gestor no puede ver ni acceder
if ($page === 'usuarios' && !canManageUsers()) {
    header('Location: index.php?page=resumen');
    exit;
}

// Determinar menú activo
$active_menu = $page;
if ($page === 'agregar' || $page === 'editar' || $page === 'eliminar') {
    $active_menu = 'agregar'; // Todos estos comparten el mismo menú
}

// Cargar el contenido de la página
$page_file = __DIR__ . '/pages/' . $page . '.php';

if (!file_exists($page_file)) {
    die('Página no encontrada');
}

// Capturar el contenido de la página
ob_start();
require $page_file;
$content = ob_get_clean();

// Variables para el layout
$page_title = $allowed_pages[$page];

// Incluir layout
require_once '../includes/layout.php';
?>
