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

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $id = intval($_POST['id_grifo']);
    $nombre = strtoupper(trim($_POST['nombre']));
    $ruc = trim($_POST['ruc']);
    $telefono = trim($_POST['telefono']);
    $lugar = strtoupper(trim($_POST['lugar']));

    $conn = new Conexion_BD();

    // Validar si existe otro grifo con el mismo RUC
    $sql = "SELECT id FROM grifos WHERE ruc = ? AND id <> ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("si", $ruc, $id);
    $stmt->execute();
    $stmt->store_result();

    if ($stmt->num_rows > 0) {
        $_SESSION['error_ruc'] = "El RUC ingresado ya existe para otro grifo.";
        $stmt->close();
        $conn->closeConnection();
        header("Location: ../../vista/Administrador/Adm_Editar_Grifo.php?IG=$id");
        exit;
    }
    $stmt->close();

    // Actualizar datos
    $sql = "UPDATE grifos SET nombre = ?, ruc = ?, telefono = ?, lugar = ? WHERE id = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("ssssi", $nombre, $ruc, $telefono, $lugar, $id);
    $stmt->execute();

    // ======= AUDITORÍA =======
    if ($stmt->affected_rows > 0) {
        $id_usuario = $_SESSION['id_usuario'] ?? 0;
        $nombre_usuario = $_SESSION['nombre'] ?? $_SESSION['usuario'] ?? 'sistema';
        $tipo_usuario = $_SESSION['rol'] ?? '';
        $descripcion = "Se editó el grifo ID: $id, Nombre: $nombre, RUC: $ruc";

        registrarAuditoria(
            'grifos',              // modulo/tabla
            'editar',              // acción
            $descripcion,          // descripción
            $id_usuario,           // id_usuario (quién ejecuta)
            $nombre_usuario,       // nombre_usuario (quién ejecuta)
            'grifos',              // tabla_afectada
            $id,                   // id_registro_afectado (id del grifo editado)
            $tipo_usuario          // tipo_usuario
        );
    }
    // =========================

    $stmt->close();
    $conn->closeConnection();

    // ✅ Aquí guardamos la sesión para la alerta JS
    $_SESSION['grifo_update'] = $id;

    header("Location: ../../vista/Administrador/Adm_Gestion_Grifos.php");
    exit;
} else {
    header("Location: ../../vista/Administrador/Adm_Gestion_Grifos.php");
    exit;
}
?>
