<?php
session_start();
require_once "../Utilidades/Conexion_BD.php";
require_once "../Utilidades/Auditoria.php";

$nombre_ruta  = strtoupper(trim($_POST['nombre_ruta']));
$km_estimado  = intval($_POST['km_estimado']);
$descripcion  = trim($_POST['descripcion']);
$enlace_mapa  = trim($_POST['enlace_mapa']) ?: null; // Puede ser NULL si está vacío

$conn = new Conexion_BD();
$sql = "INSERT INTO rutas (nombre_ruta, km_estimado, descripcion, enlace_mapa) VALUES (?, ?, ?, ?)";

try {
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("siss", $nombre_ruta, $km_estimado, $descripcion, $enlace_mapa);
    $stmt->execute();

    // === AUDITORÍA ===
    $id_usuario      = $_SESSION['id_usuario'] ?? 0;
    $nombre_usuario  = $_SESSION['nombre'] ?? $_SESSION['usuario'] ?? 'sistema';
    $tipo_usuario    = $_SESSION['rol'] ?? '';
    $id_nuevo        = $conn->getConnection()->insert_id;
    $descripcion_aud = "Se registró una nueva ruta: $nombre_ruta, $km_estimado km." . 
                       ($enlace_mapa ? " Enlace mapa: $enlace_mapa" : "");

    registrarAuditoria(
        'rutas',            // módulo
        'agregar',          // acción
        $descripcion_aud,   // descripción
        $id_usuario,        // id del usuario
        $nombre_usuario,    // nombre del usuario
        'rutas',            // tabla afectada
        $id_nuevo,          // id insertado
        $tipo_usuario       // tipo de usuario
    );
    // ==================

    $_SESSION['rutaNombre'] = $nombre_ruta;
    $stmt->close();
    $conn->closeConnection();

    header("Location: ../../Vista/Administrador/Adm_Gestion_Rutas.php");
    exit();

} catch (mysqli_sql_exception $e) {
    $mensajeError = "Ocurrió un error al registrar la ruta.";

    if (str_contains($e->getMessage(), 'Duplicate entry')) {
        $mensajeError = "La ruta ingresada ya existe.";
    }

    $_SESSION['error_ruta'] = $mensajeError;
    $conn->closeConnection();
    header("Location: ../../Vista/Administrador/Adm_Formulario_Ruta.php");
    exit();
}
