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

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

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

$response = [
    "success" => false,
    "permisos" => []
];

if (isset($_SESSION["id_usuario"])) {
    $id_usuario = $_SESSION["id_usuario"];
    $modulo = isset($_GET["modulo"]) ? trim($_GET["modulo"]) : null;

    if (!$modulo) {
        $response["message"] = "El parámetro 'modulo' es obligatorio.";
        echo json_encode($response);
        exit;
    }

    // Si es administrador → permisos totales
    if (strtolower($_SESSION["rol"]) === "administrador") {
        $response["success"] = true;
        $response["permisos"] = [
            "puede_agregar"   => 1,
            "puede_editar"    => 1,
            "puede_eliminar"  => 1,
            "puede_reportes"  => 1,
            "puede_estado"    => 1
        ];
        echo json_encode($response);
        exit;
    }

    // Para supervisores, consulta permisos reales
    $conn = new Conexion_BD();
    $mysqli = $conn->getConnection();

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

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

    $stmt->bind_param("is", $id_usuario, $modulo);
    $stmt->execute();
    $result = $stmt->get_result();

    if ($row = $result->fetch_assoc()) {
        $response["success"] = true;
        foreach ($row as $key => $value) {
            $response["permisos"][$key] = (int)$value;
        }
    } else {
        // Si no tiene registros, devuelve permisos en cero
        $response["success"] = true;
        $response["permisos"] = [
            "puede_agregar"   => 0,
            "puede_editar"    => 0,
            "puede_eliminar"  => 0,
            "puede_reportes"  => 0,
            "puede_estado"    => 0
        ];
    }

    $stmt->close();
    $conn->closeConnection();
} else {
    $response["message"] = "No hay sesión activa.";
}

echo json_encode($response);
exit;
?>
