<?php
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

require_once '../../Controlador/Utilidades/Conexion_BD.php';

header('Content-Type: application/json; charset=utf-8');

$id_usuario = $_POST['id_usuario'] ?? $_GET['id_usuario'] ?? null;

if (!$id_usuario) {
    echo json_encode([
        "success" => false,
        "message" => "ID de usuario es obligatorio."
    ]);
    exit;
}

$conn   = new Conexion_BD();
$mysqli = $conn->getConnection();

$stmt = $mysqli->prepare("
    SELECT modulo, 
           puede_agregar, 
           puede_editar, 
           puede_eliminar, 
           puede_reportes,
           puede_movimientos,
           puede_estado
    FROM permisos_usuario
    WHERE id_usuario = ?
");

if (!$stmt) {
    echo json_encode([
        "success" => false,
        "message" => "Error al preparar consulta: " . $mysqli->error
    ]);
    $conn->closeConnection();
    exit;
}

$stmt->bind_param("i", $id_usuario);

if (!$stmt->execute()) {
    echo json_encode([
        "success" => false,
        "message" => "Error al ejecutar la consulta: " . $stmt->error
    ]);
    $stmt->close();
    $conn->closeConnection();
    exit;
}

$result   = $stmt->get_result();
$permisos = [];

while ($row = $result->fetch_assoc()) {
    $modulo = $row['modulo'];
    $permisos[$modulo] = [
        'agregar'     => (int)$row['puede_agregar'],
        'editar'      => (int)$row['puede_editar'],
        'eliminar'    => (int)$row['puede_eliminar'],
        'reportes'    => (int)$row['puede_reportes'],
        'movimientos' => (int)$row['puede_movimientos'],
        'estado'      => (int)$row['puede_estado']
    ];
}

echo json_encode([
    "success" => true,
    "data"    => $permisos
]);

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