'error', 'message' => 'Unauthorized access']); exit; } $user_role = getUserRole(); if (!in_array($user_role, ['admin', 'superadmin'])) { ob_end_clean(); echo json_encode(['status' => 'error', 'message' => 'Unauthorized access']); exit; } try { $trip_id = intval($_POST['trip_id'] ?? 0); if ($trip_id <= 0) { throw new Exception('Invalid trip ID'); } // Fetch current published status $stmt = $conn->prepare("SELECT published FROM trips WHERE trip_id = ?"); $stmt->bind_param("i", $trip_id); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows === 0) { throw new Exception('Trip not found'); } $row = $result->fetch_assoc(); $new_status = $row['published'] == 1 ? 0 : 1; $stmt->close(); // Update published status $stmt = $conn->prepare("UPDATE trips SET published = ? WHERE trip_id = ?"); $stmt->bind_param("ii", $new_status, $trip_id); if (!$stmt->execute()) { throw new Exception('Failed to update trip status: ' . $stmt->error); } $stmt->close(); ob_end_clean(); echo json_encode([ 'status' => 'success', 'message' => $new_status == 1 ? 'Trip published successfully' : 'Trip unpublished successfully', 'published' => $new_status ]); } catch (Exception $e) { ob_end_clean(); echo json_encode(['status' => 'error', 'message' => $e->getMessage()]); } ?>