<?php
session_start();
require_once "../Utilidades/Conexion_BD.php";
require_once "../Utilidades/Auditoria.php"; // <--- Incluye la auditoría

// Capturar datos del formulario
$nombre = strtoupper(trim($_POST['nombre']));
$ruc = trim($_POST['ruc']);
$telefono = trim($_POST['telefono']);
$lugar = strtoupper(trim($_POST['lugar']));

// Conexión
$conn = new Conexion_BD();
$sql = "INSERT INTO grifos (nombre, ruc, telefono, lugar) VALUES (?, ?, ?, ?)";

try {
    $stmt = $conn->prepare($sql);

    if (!$stmt) {
        throw new Exception("Error al preparar la consulta: " . $conn->getConnection()->error);
    }

    $stmt->bind_param("ssss", $nombre, $ruc, $telefono, $lugar);
    $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; // Último ID insertado
    $tabla_afectada = 'grifos';
    $descripcion = "Se registró un nuevo grifo: $nombre (RUC: $ruc)";

    registrarAuditoria(
        $tabla_afectada,    // modulo o tabla
        'agregar',          // acción
        $descripcion,       // descripción
        $id_usuario,        // id_usuario
        $nombre_usuario,    // nombre_usuario
        $tabla_afectada,    // tabla_afectada
        $id_nuevo,          // id_registro_afectado
        $tipo_usuario       // tipo_usuario (admin, supervisor, etc)
    );
    // =========================

    $_SESSION['grifoNombre'] = $nombre;
    $stmt->close();
    $conn->closeConnection();

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

} catch (mysqli_sql_exception $e) {
    if (str_contains($e->getMessage(), 'Duplicate entry')) {
        $_SESSION['error_grifo'] = "El RUC o nombre del grifo ya existe.";
    } else {
        $_SESSION['error_grifo'] = "Error al registrar el grifo.";
    }

    $conn->closeConnection();
    header("Location: ../../Vista/Administrador/Adm_Formulario_Grifo.php");
    exit();
} catch (Exception $e) {
    $_SESSION['error_grifo'] = $e->getMessage();
    $conn->closeConnection();
    header("Location: ../../Vista/Administrador/Adm_Formulario_Grifo.php");
    exit();
}
?>
