false, 'error' => 'user_id required']); exit; } $db = Database::getInstance(); $user = $db->fetch('SELECT phone_number FROM users WHERE id = :id', ['id' => $userId]); if (!$user) { http_response_code(404); echo json_encode(['success' => false, 'error' => 'User not found']); exit; } // Use BotService to release hold (sends notification and clears flags) try { require_once __DIR__ . '/../services/BotService.php'; $bot = new BotService(); $bot->releaseHold($user['phone_number']); echo json_encode(['success' => true]); } catch (Exception $e) { // Fallback to direct DB update if BotService fails $db->update('users', ['on_hold' => 0, 'advisor_requested' => 0, 'bot_paused_until' => null], 'id = :id', ['id' => $userId]); echo json_encode(['success' => true, 'warning' => 'BotService failed, flags cleared directly']); } } catch (Exception $e) { http_response_code(500); echo json_encode(['success' => false, 'error' => $e->getMessage()]); }