<?php
session_start();
require_once "../Utilidades/Conexion_BD.php";
require_once "../Utilidades/Auditoria.php"; // <--- AUDITORÍA

$nombres = strtoupper(trim($_POST['nombres']));
$apellidos = strtoupper(trim($_POST['apellidos']));
$dni = trim($_POST['dni']);
$categoria_licencia = strtoupper(trim($_POST['categoria_licencia']));
$telefono = trim($_POST['telefono']);

$conn = new Conexion_BD();
$sql = "INSERT INTO choferes (nombres, apellidos, dni, categoria_licencia, telefono) 
        VALUES (?, ?, ?, ?, ?)";

try {
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("sssss", $nombres, $apellidos, $dni, $categoria_licencia, $telefono);
    $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 = "Se registró un nuevo chofer: $nombres $apellidos (DNI: $dni)";

    registrarAuditoria(
        'choferes',         // modulo
        'agregar',          // accion
        $descripcion,       // descripcion
        $id_usuario,        // quien ejecuta
        $nombre_usuario,    // usuario ejecutor
        'choferes',         // tabla afectada
        $id_nuevo,          // id del chofer insertado
        $tipo_usuario       // tipo usuario
    );
    // ===========================

    $_SESSION['choferNombre'] = $nombres;
    $stmt->close();
    $conn->closeConnection();

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

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

    if (str_contains($e->getMessage(), 'Duplicate entry')) {
        $mensajeError = "El DNI ingresado ya se encuentra registrado.";
    }

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