<?php
session_start();

/* === Check de sesión === */
if (empty($_SESSION['user_id'])) {
    $_SESSION['return_to'] = $_SERVER['REQUEST_URI'] ?? '/dashboard.php';
    header('Location: login.php'); // login está en /views/login.php
    exit;
}

/* === (Opcional) Solo admin puede entrar === */
// si su admin es id = 1:
$isAdmin = ((int)$_SESSION['user_id'] === 1);
if (!$isAdmin) {
    header('Location: ../dashboard.php');
    exit;
}

/* NO pongas más redirecciones aquí.
   Ya después carga tus includes y lógica: */
require_once '../services/pdo_connection.php';
require_once '../models/model_usuario.php';


$db = (new Database())->getConnection();

$usuario = new Usuario();
$usuario->setIdUsuario((int)$_SESSION['user_id']);

$stmt = $usuario->leerUno($db);
$row  = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$row) {
    session_destroy();
    header('Location: login.php');
    exit;
}

// Carga datos del admin
$usuario->setCorreo($row['correo']);
$usuario->setTelefono($row['telefono']);
$usuario->setNombreCompleto($row['nombre_completo']);
$usuario->setActivo((int)$row['activo']);

$id_admin     = (int)$usuario->getIdUsuario();
$admin_nombre = $usuario->getNombreCompleto();

/* Listado de usuarios (con estado) */
$stmt_todos = $usuario->leerTodos($db);
$lista_raw  = $stmt_todos->fetchAll(PDO::FETCH_ASSOC);

$usuarios = [];
foreach ($lista_raw as $it) {
    if ((int)$it['id_usuario'] === $id_admin) continue; // fuera el propio admin
    $u = new Usuario();
    $u->setIdUsuario((int)$it['id_usuario']);
    $d = $u->leerUno($db)->fetch(PDO::FETCH_ASSOC) ?: [];
    $usuarios[] = [
        'id'      => (int)$it['id_usuario'],
        'nombre'  => $it['nombre_completo'],
        'correo'  => $d['correo'] ?? '',
        'tel'     => $d['telefono'] ?? '',
        'activo'  => isset($d['activo']) ? (int)$d['activo'] : 0
    ];
}

$activos    = array_values(array_filter($usuarios, fn($u) => (int)$u['activo'] === 1));
$pendientes = array_values(array_filter($usuarios, fn($u) => (int)$u['activo'] !== 1));

/* URL de invitación (ajusta si tu raíz cambia) */
$inviteUrl = (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/taqueria/views/registro.php';
?>
<!doctype html>
<html lang="es">

<head>
    <meta charset="utf-8">
    <title>Admin · Perfil</title>
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <link rel="stylesheet" href="css/perfil.css">
</head>

<body data-user-id="<?= htmlspecialchars($id_admin) ?>"
    data-admin-name="<?= htmlspecialchars($admin_nombre) ?>"
    data-invite-url="<?= htmlspecialchars($inviteUrl) ?>">

    <!-- ===== Topbar igual a los demás módulos ===== -->
    <header class="topbar">
        <div class="wrap topbar-inner">
            <div class="brand"><span class="logo">🌮</span><strong>Taquería · Admin</strong></div>

            <button class="btn ghost menu-toggle" type="button" aria-expanded="false" aria-controls="topbarMenu">☰ Menú</button>

            <nav class="actions" id="topbarMenu">
                <a class="btn ghost" href="../dashboard.php">Volver al menú principal</a>
                <a class="btn ghost" href="ver_historial.php">Pedidos</a>
                <a class="btn ghost" href="ver_historial_agenda.php">Agendas</a>
                <a class="btn ghost" href="perfil.php">Usuarios</a>
                <a class="btn ghost" href="public/menu.php" target="_blank">Ver menú público</a>
                <form action="logout.php" method="post" style="display:inline;">
                    <button type="submit" class="btn ghost danger">Cerrar sesión</button>
                </form>
            </nav>
        </div>
    </header>

    <main class="wrap">

        <div class="main-grid">
            <!-- === Izquierda: Mi perfil (más angosto) === -->
            <aside class="card profile-card">
                <div class="card-head row">
                    <h3>Mi perfil (Administrador)</h3>
                    <div class="pill"><?= $usuario->getActivo() ? 'ACTIVO' : 'INACTIVO' ?></div>
                </div>

                <div class="perfil-grid">
                    <div class="perfil-block">
                        <div class="pair"><span>ID</span><strong>#<?= $id_admin ?></strong></div>
                        <div class="pair"><span>Nombre</span><strong><?= htmlspecialchars($admin_nombre) ?></strong></div>
                        <div class="pair"><span>Correo</span><strong><?= htmlspecialchars($usuario->getCorreo()) ?></strong></div>
                        <div class="pair"><span>Teléfono</span><strong><?= htmlspecialchars($usuario->getTelefono()) ?></strong></div>
                    </div>

                    <div class="perfil-actions">
                        <button class="btn primary" id="btnEditarPerfil">Editar perfil</button>
                        <button class="btn" id="btnCopiarLink">Copiar link de invitación</button>
                    </div>
                </div>
            </aside>

            <!-- === Derecha: Carrusel de activos === -->
            <section class="card team-card">
                <div class="card-head row">
                    <h3>Equipo activo</h3>
                    <span class="pill"><?= count($activos) ?> activos</span>
                </div>

                <div class="carousel">
                    <button class="carousel-btn carousel-prev" aria-label="Anterior">‹</button>

                    <div class="carousel-viewport" tabindex="0">
                        <div class="carousel-track">
                            <?php if ($activos): foreach ($activos as $u): ?>
                                    <article class="user-card" data-id="<?= $u['id'] ?>" data-activo="1">
                                        <header>
                                            <h4><?= htmlspecialchars($u['nombre']) ?></h4>
                                            <span class="badge ok">ACTIVO</span>
                                        </header>
                                        <div class="meta">
                                            <div class="item"><span>Correo</span><strong><?= htmlspecialchars($u['correo'] ?: '—') ?></strong></div>
                                            <div class="item"><span>Teléfono</span><strong><?= htmlspecialchars($u['tel'] ?: '—') ?></strong></div>
                                        </div>
                                        <footer class="actions-row">
                                            <button class="btn" data-ver="<?= $u['id'] ?>">Ver / Editar</button>
                                            <button class="btn danger" data-desactivar="<?= $u['id'] ?>">Desactivar</button>
                                        </footer>
                                    </article>
                                <?php endforeach;
                            else: ?>
                                <p style="padding:10px 16px;">No hay usuarios activos.</p>
                            <?php endif; ?>
                        </div>
                    </div>

                    <button class="carousel-btn carousel-next" aria-label="Siguiente">›</button>
                </div>
            </section>

            <!-- === Abajo: Pendientes/Inactivos en grilla === -->
            <section class="card span-2">
                <div class="card-head row">
                    <h3>Solicitudes e inactivos</h3>
                    <span class="pill"><?= count($pendientes) ?> usuarios</span>
                </div>

                <div class="users-grid">
                    <?php if ($pendientes): foreach ($pendientes as $u): ?>
                            <article class="user-card" data-id="<?= $u['id'] ?>" data-activo="0">
                                <header>
                                    <h4><?= htmlspecialchars($u['nombre']) ?></h4>
                                    <span class="badge warn">PENDIENTE/INACTIVO</span>
                                </header>
                                <div class="meta">
                                    <div class="item"><span>Correo</span><strong><?= htmlspecialchars($u['correo'] ?: '—') ?></strong></div>
                                    <div class="item"><span>Teléfono</span><strong><?= htmlspecialchars($u['tel'] ?: '—') ?></strong></div>
                                </div>
                                <footer class="actions-row">
                                    <button class="btn" data-ver="<?= $u['id'] ?>">Ver / Editar</button>
                                    <button class="btn primary" data-activar="<?= $u['id'] ?>">Dar de alta</button>
                                    <button class="btn danger" data-eliminar="<?= $u['id'] ?>">Eliminar solicitud</button>
                                </footer>
                            </article>
                        <?php endforeach;
                    else: ?>
                        <p style="padding:12px">No hay solicitudes pendientes.</p>
                    <?php endif; ?>
                </div>
            </section>
        </div>
    </main>


    <!-- ===== Overlay: Verificación de contraseña de ADMIN ===== -->
    <div id="gateModal" class="gate">
        <div class="gate-box">
            <h2>Acceso de administrador</h2>
            <p>Confirma tu contraseña para gestionar usuarios.</p>
            <form id="gateForm">
                <input type="password" id="gatePass" placeholder="Tu contraseña" required>
                <button class="btn primary" type="submit">Entrar</button>
                <small id="gateMsg" class="muted"></small>
            </form>
        </div>
    </div>

    <!-- Modal: Editar MI perfil (admin) -->
    <div id="profileModal" class="modal" style="display:none;">
        <div class="modal-content">
            <button class="close" data-close>&times;</button>
            <h2>Editar mi perfil</h2>
            <form id="profileForm">
                <input type="hidden" name="id" value="1">
                <div class="field"><label>Nombre</label>
                    <input type="text" name="nombre_completo" required>
                </div>
                <div class="field"><label>Correo</label>
                    <input type="email" name="correo" required>
                </div>
                <div class="field"><label>Teléfono</label>
                    <input type="text" name="telefono">
                </div>
                <div class="field"><label>Nueva contraseña (opcional)</label>
                    <input type="password" name="new_password" autocomplete="new-password">
                </div>
                <div class="actions-row">
                    <button type="submit" class="btn primary">Guardar cambios</button>
                    <button type="button" class="btn" data-close>Cancelar</button>
                </div>
            </form>
        </div>
    </div>

    <!-- Modal: Ver / Editar OTRO usuario -->
    <div id="userModal" class="modal" style="display:none;">
        <div class="modal-content">
            <button class="close" data-close>&times;</button>
            <h2>Usuario</h2>
            <form id="userForm">
                <input type="hidden" name="id">
                <div class="field"><label>Nombre</label>
                    <input type="text" name="nombre_completo" required>
                </div>
                <div class="field"><label>Correo</label>
                    <input type="email" name="correo">
                </div>
                <div class="field"><label>Teléfono</label>
                    <input type="text" name="telefono">
                </div>
                <div class="field" style="display:flex;gap:8px;align-items:center;">
                    <input type="checkbox" id="chkActivo" name="activo" value="1">
                    <label for="chkActivo" style="margin:0;">Activo</label>
                </div>
                <div class="field"><label>Nueva contraseña (opcional)</label>
                    <input type="password" name="new_password" autocomplete="new-password">
                </div>

                <div class="actions-row" style="gap:8px;flex-wrap:wrap;">
                    <button type="submit" class="btn primary">Guardar</button>
                    <button type="button" class="btn" id="btnToggle">Dar de alta</button>
                    <button type="button" class="btn danger" id="btnDelete">Eliminar</button>
                    <button type="button" class="btn" data-close>Cancelar</button>
                </div>
            </form>
            <small id="userModalMsg" class="muted"></small>
        </div>
    </div>


    <!-- Toast -->
    <div id="toast" class="toast"></div>

    <script src="js/perfil.js?v=1"></script>
</body>

</html>