<?php
require_once '../../config/config.php';
require_once '../../config/database.php';
require_once '../../controllers/TicketController.php';
require_once '../../includes/functions.php';

require_once '../../includes/email_helper.php';

// 1. Verificación de seguridad: Solo usuarios logueados
if (!isset($_SESSION['usuario_id'])) {
    header("Location: ../../index.php");
    exit();
}

$mensaje = "";
$ticketCtrl = new TicketController($pdo);

// 2. Procesar el envío del formulario
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $titulo = limpiar($_POST['titulo']);
    $descripcion = limpiar($_POST['descripcion']);
    $id_prioridad = $_POST['prioridad']; // Recibe ID numérico (1, 2, 3 o 4)
    $id_usuario = $_SESSION['usuario_id'];
    
    // El ID del equipo es opcional
    $id_equipo = !empty($_POST['id_equipo']) ? $_POST['id_equipo'] : null;

    if ($ticketCtrl->crearTicket($id_usuario, $titulo, $descripcion, $id_prioridad, $id_equipo)) {
        
        $id_nuevo_ticket = $pdo->lastInsertId();
        // Redirigir al listado con mensaje de éxito
        
        
        // 2. PREPARAR NOTIFICACIÓN POR CORREO
        // Notificar al Administrador (Jorge)
        $email_admin = 'j12.orellana@gmail.com'; // Tu correo de Google configurado
        $cuerpo_admin = "
            <strong>Nuevo Ticket Creado</strong><br>
            <strong>Usuario:</strong> {$_SESSION['usuario_nombre']}<br>
            <strong>Asunto:</strong> $titulo<br>
            <strong>Descripción:</strong> $descripcion<br>
            <br>Por favor, ingresa al sistema para asignar un técnico o resolver el requerimiento.
        ";

        // Iniciar la conversación enviando el correo
        enviarNotificacionTicket($email_admin, $titulo, $cuerpo_admin, $id_nuevo_ticket);
        
        /*

        // Opcional: Notificar también al docente que su ticket fue recibido
        $email_docente = $_SESSION['usuario_email'];
        $cuerpo_docente = "Hemos recibido tu requerimiento correctamente con el ID #$id_nuevo_ticket. Pronto un técnico se pondrá en contacto contigo.";
        enviarNotificacionTicket($email_docente, $titulo, $cuerpo_docente, $id_nuevo_ticket);
        
        */
        
        
        
        header("Location: index.php?msg=ticket_creado");
        exit();
    } else {
        $mensaje = mostrarAlerta("Hubo un problema al registrar tu solicitud. Por favor, intenta de nuevo.", "error");
    }
}

// 3. Obtener los equipos asignados al usuario actual para el selector
$stmt_equipos = $pdo->prepare("SELECT id, marca, modelo, serie FROM inventario WHERE id_encargado_actual = ?");
$stmt_equipos->execute([$_SESSION['usuario_id']]);
$mis_equipos = $stmt_equipos->fetchAll();

include '../layout/header.php';
?>

<div class="max-w-4xl mx-auto px-4">
    <div class="mb-8 flex items-center gap-4">
        <a href="index.php" class="bg-white p-3 rounded-xl shadow-sm border border-slate-200 text-slate-400 hover:text-blue-600 transition">
            <i class="fas fa-arrow-left"></i>
        </a>
        <div>
            <h1 class="text-3xl font-bold text-slate-800">Crear Ticket de Soporte</h1>
            <p class="text-slate-500">Reporta un fallo técnico o solicita asistencia para la UE "Cap. Giovanni Calles".</p>
        </div>
    </div>

    <?php echo $mensaje; ?>

    <div class="grid grid-cols-1 lg:grid-cols-3 gap-8">
        
        <div class="lg:col-span-2">
            <form action="nuevo.php" method="POST" class="bg-white p-8 rounded-2xl shadow-sm border border-slate-100 space-y-6">
                
                <div>
                    <label class="block text-sm font-bold text-slate-700 mb-2 uppercase tracking-wide">Asunto del Problema</label>
                    <input type="text" name="titulo" required 
                           class="w-full p-4 bg-slate-50 border border-slate-200 rounded-xl focus:ring-2 focus:ring-blue-500 outline-none transition"
                           placeholder="Ej: La PC del laboratorio no conecta a internet">
                </div>

                <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
                    <div>
                        <label class="block text-sm font-bold text-slate-700 mb-2 uppercase tracking-wide">Prioridad</label>
                        <select name="prioridad" required class="w-full p-4 bg-slate-50 border border-slate-200 rounded-xl focus:ring-2 focus:ring-blue-500 outline-none cursor-pointer font-medium text-slate-700">
                            <option value="1">Baja (Consulta / Duda)</option>
                            <option value="2" selected>Media (Inconveniente leve)</option>
                            <option value="3">Alta (Urgente / Bloqueo)</option>
                            <option value="4">Crítica (Fallo de red o servidor)</option>
                        </select>
                    </div>

                    <div>
                        <label class="block text-sm font-bold text-slate-700 mb-2 uppercase tracking-wide">Equipo Relacionado</label>
                        <select name="id_equipo" class="w-full p-4 bg-slate-50 border border-slate-200 rounded-xl focus:ring-2 focus:ring-blue-500 outline-none cursor-pointer text-sm">
                            <option value="">Ninguno / Fallo General</option>
                            <?php foreach($mis_equipos as $eq): ?>
                                <option value="<?php echo $eq['id']; ?>">
                                    <?php echo $eq['marca'] . " " . $eq['modelo'] . " (" . $eq['serie'] . ")"; ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                        <p class="text-[10px] text-slate-400 mt-1 italic">Solo aparecen equipos asignados a tu nombre.</p>
                    </div>
                </div>

                <div>
                    <label class="block text-sm font-bold text-slate-700 mb-2 uppercase tracking-wide">Descripción Detallada</label>
                    <textarea name="descripcion" rows="6" required 
                              class="w-full p-4 bg-slate-50 border border-slate-200 rounded-xl focus:ring-2 focus:ring-blue-500 outline-none transition"
                              placeholder="Explica qué sucede, mensajes de error y qué estabas haciendo cuando ocurrió..."></textarea>
                </div>

                <div class="flex items-center justify-end gap-4 pt-4 border-t border-slate-100">
                    <a href="index.php" class="text-slate-400 font-bold hover:text-slate-600 transition">Descartar</a>
                    <button type="submit" class="bg-slate-800 hover:bg-slate-700 text-white px-10 py-4 rounded-xl font-bold shadow-lg transition">
                        <i class="fas fa-paper-plane mr-2 text-blue-400"></i> Enviar a Soporte
                    </button>
                </div>
            </form>
        </div>

        <div class="lg:col-span-1 space-y-6">
            <div class="bg-blue-600 p-6 rounded-2xl text-white shadow-xl">
                <div class="w-12 h-12 bg-white/20 rounded-xl flex items-center justify-center mb-4 text-2xl">
                    <i class="fas fa-user-shield"></i>
                </div>
                <h3 class="text-xl font-bold mb-2">Ayuda Directa</h3>
                <p class="text-blue-100 text-sm leading-relaxed mb-6">
                    Tu reporte llegará directamente al <b>Departamento TIC</b>. El Analista TIC revisará tu caso en el menor tiempo posible.
                </p>
                <div class="bg-white/10 p-4 rounded-xl text-xs space-y-2">
                    <p><i class="fas fa-check-circle mr-2"></i> Estado en tiempo real</p>
                    <p><i class="fas fa-check-circle mr-2"></i> Notificaciones de avance</p>
                    <p><i class="fas fa-check-circle mr-2"></i> Registro histórico</p>
                </div>
            </div>

            <div class="bg-white p-6 rounded-2xl border border-slate-200 shadow-sm">
                <h4 class="text-slate-800 font-bold mb-3 flex items-center gap-2">
                    <i class="fas fa-lightbulb text-amber-500"></i> ¿Sabías que?
                </h4>
                <p class="text-slate-500 text-xs leading-relaxed">
                    Puedes adjuntar fotos del error una vez que el ticket esté creado desde la pantalla de <b>Detalle del Ticket</b>.
                </p>
            </div>
        </div>
    </div>
</div>

<?php include '../layout/footer.php'; ?>