<?php
session_start();
if (!isset($_SESSION['usuario']) || !isset($_SESSION['token'])) {
    header("Location: index.html");
    exit;
}

require 'conexion.php';

// Validar token
$sql = "SELECT token FROM Usuarios WHERE usuario = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $_SESSION['usuario']);
$stmt->execute();
$res = $stmt->get_result();
if ($res->num_rows !== 1 || $res->fetch_assoc()['token'] !== $_SESSION['token']) {
    session_unset();
    session_destroy();
    header("Location: index.html?session=invalid");
    exit;
}

// Cargar accesos
$accesos = [];
$rs = $conn->query("SELECT cod_acceso, tipo_acceso FROM Accesos");
while ($r = $rs->fetch_assoc()) $accesos[] = $r;

// Buscar usuarios
$buscar = $_GET['buscar'] ?? '';
$sql = "SELECT 
            Id, 
            nombres, 
            apellidos, 
            nom_usuario, 
            usuario, 
            contrasenna, 
            telefono, 
            acceso_id, 
            habilitado,
            fecha_registro
        FROM Usuarios
        WHERE usuario LIKE ? 
           OR nombres LIKE ? 
           OR apellidos LIKE ? 
           OR nom_usuario LIKE ? 
           OR telefono LIKE ?";

$stmt = $conn->prepare($sql);
$like = "%$buscar%";
$stmt->bind_param("sssss", $like, $like, $like, $like, $like);
$stmt->execute();
$usuarios = $stmt->get_result();

$nombreUsuario = htmlspecialchars($_SESSION['nombre']);
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Gestor de Usuarios</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="crud_estilos.css">
    <script src="crud_funciones.js" defer></script>

    <!-- SweetAlert2 -->
    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>

    <style>
        /* Estilo para los campos de contraseña con ojitos */
        .password-container {
            position: relative;
            width: 100%;
        }
        
        .password-container input {
            width: 100%;
            padding-right: 40px;
        }
        
        .toggle-password {
            position: absolute;
            right: 10px;
            top: 50%;
            transform: translateY(-50%);
            cursor: pointer;
            user-select: none;
            font-size: 18px;
            color: #666;
        }
        
        .toggle-password:hover {
            color: #333;
        }

        /* Igualar estilo del input date */
        input[type="date"] {
            font-family: inherit;
            font-size: inherit;
        }
    </style>

    <script>
    function enviarWhatsApp(nombreCompleto, correo, contrasena, telefono) {
        if (!telefono) {
            Swal.fire({
                icon: 'warning',
                title: 'Número no registrado',
                text: 'El usuario no tiene un número de teléfono registrado.',
                confirmButtonText: 'Aceptar',
                width: '400px'
            });
            return;
        }

        // Limpia y agrega el código de país
        let numeroLimpio = telefono.replace(/\D/g, "");
        if (!numeroLimpio.startsWith("51")) {
            numeroLimpio = "51" + numeroLimpio;
        }

        let mensaje = `Hola ${nombreCompleto}\n` +
                      `Te has registrado exitosamente en el SIMULADOR DE ASCENSO SIAPOL.\n\n` +
                      `USUARIO: ${correo}\n` +
                      `CONTRASEÑA: ${contrasena}\n\n` +
                      `Ya puedes ingresar a nuestra plataforma y hacer uso de todas sus herramientas.\n\n` +
                      `Ingrese por este Link: https://simuladorsiapol.atwebpages.com`;

        let url = `https://wa.me/${numeroLimpio}?text=${encodeURIComponent(mensaje)}`;

        Swal.fire({
            title: '¿Enviar mensaje por WhatsApp?',
            text: "Se abrirá WhatsApp con el mensaje preparado.",
            icon: 'question',
            showCancelButton: true,
            confirmButtonText: 'Sí, enviar',
            cancelButtonText: 'Cancelar',
            width: '400px'
        }).then((result) => {
            if (result.isConfirmed) {
                window.open(url, '_blank');
            }
        });
    }

    // Función para mostrar/ocultar contraseñas
    function togglePassword(inputId, iconId) {
        const input = document.getElementById(inputId);
        const icon = document.getElementById(iconId);
        
        if (input.type === 'password') {
            input.type = 'text';
            icon.textContent = '👁️';
        } else {
            input.type = 'password';
            icon.textContent = '👁️‍🗨️';
        }
    }
    </script>
</head>
<body>
    <header class="header">
        <div class="navbar">
            <div class="izquierda">
                <a href="panel_admin.php" title="Panel de administrador">
                    <button class="btn atras">
                    <img src="iconos/atras.png" alt="Atras">
                    </button>
                </a>
                <div class="usuario">Admin: <?= $nombreUsuario ?></div>
            </div>
            <button class="btn cerrar" onclick="location.href='logout.php'">Cerrar Sesión</button>
        </div>
    </header>

    <main class="main-container">
        <section class="form-section">
            <h2>Usuarios</h2>
            <div class="subtitulo">Registrar / Editar / Eliminar</div>
            <form id="formUsuario">
                <input type="hidden" name="id" id="id">
                <input name="nombres" id="nombres" placeholder="Nombres" required>
                <input name="apellidos" id="apellidos" placeholder="Apellidos" required>
                <input type="email" name="correo" id="correo" placeholder="Correo" required>
                <input name="telefono" id="telefono" placeholder="Teléfono" required>
                <select name="acceso" id="acceso" required>
                    <option value="">Tipo de acceso</option>
                    <?php foreach ($accesos as $a): ?>
                        <option value="<?= $a['cod_acceso'] ?>"><?= htmlspecialchars($a['tipo_acceso']) ?></option>
                    <?php endforeach; ?>
                </select>
                
                <!-- Campos de contraseña con ojitos -->
                <div class="password-container">
                    <input type="password" name="contrasena" id="contrasena" placeholder="Contraseña">
                    <span class="toggle-password" id="iconContrasena" onclick="togglePassword('contrasena', 'iconContrasena')">👁️‍🗨️</span>
                </div>
                
                <div class="password-container">
                    <input type="password" name="confirmar" id="confirmar" placeholder="Confirmar Contraseña">
                    <span class="toggle-password" id="iconConfirmar" onclick="togglePassword('confirmar', 'iconConfirmar')">👁️‍🗨️</span>
                </div>
                
                <select name="habilitado" id="habilitado" required>
                    <option value="1">Habilitado</option>
                    <option value="0">Deshabilitado</option>
                </select>
                
                <!-- Campo fecha_registro: oculto en nuevo registro, visible en edición -->
                <div id="contenedorFechaRegistro" style="display: none;">
                    <input type="date" name="fecha_registro" id="fecha_registro">
                </div>
                
                <div id="mensaje" style="margin-bottom: 1rem;"></div>
                <div class="form-buttons full-line">
                    <div class="left-buttons">
                        <button type="submit">Guardar</button>
                        <button type="reset">Limpiar</button>
                    </div>
                    <button type="button"
                            id="resetUsuariosBtn"
                            class="reset-all">
                        Reset Usuarios
                    </button>
                </div>
            </form>
        </section>

        <section class="tabla-section">
            <div class="busqueda">
                <form method="GET">
                    <input type="text" name="buscar" placeholder="Buscar usuario..." value="<?= htmlspecialchars($buscar) ?>">
                    <button type="submit">Buscar</button>
                </form>
            </div>
            <table>
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>Correo</th>
                        <th>Nombre completo</th>
                        <th>Teléfono</th>
                        <th>Acceso</th>
                        <th>Fecha Registro</th>
                        <th>Estado</th>
                        <th>Acciones</th>
                    </tr>
                </thead>
                <tbody>
                    <?php while ($u = $usuarios->fetch_assoc()): ?>
                        <?php
                        // Extraer primer nombre y pasarlo a minúsculas
                        $primerNombre = strtolower(explode(' ', trim($u['nombres']))[0]);
                        // Crear clave con los 4 primeros dígitos del teléfono + primer nombre
                        $claveGenerada = substr($u['telefono'], 0, 4) . $primerNombre;
                        ?>
                        <tr>
                            <td><?= $u['Id'] ?></td>
                            <td><?= $u['usuario'] ?></td>
                            <td><?= $u['nom_usuario'] ?></td>
                            <td><?= $u['telefono'] ?></td>
                            <td><?= $u['acceso_id'] ?></td>
                            <td><?= $u['fecha_registro'] ? date('d/m/Y', strtotime($u['fecha_registro'])) : 'N/A' ?></td>
                            <td><?= $u['habilitado'] ? 'Habilitado' : 'Deshabilitado' ?></td>
                            <td>
                                <button onclick='editarUsuario(<?= json_encode($u) ?>)'>Editar</button>
                                <button onclick='eliminarUsuario(<?= $u['Id'] ?>)'>Eliminar</button>
                                <button onclick='enviarWhatsApp(
                                    <?= json_encode($u['nom_usuario']) ?>,
                                    <?= json_encode($u['usuario']) ?>,
                                    <?= json_encode($claveGenerada) ?>,
                                    <?= json_encode($u['telefono']) ?>
                                )'>WhatsApp</button>
                            </td>
                        </tr>
                    <?php endwhile; ?>
                </tbody>

            </table>
        </section>
    </main>
</body>
</html>