connect_error) { throw new Exception("DB connection failed: " . $conn->connect_error); } $conn->set_charset('utf8mb4'); // Получаем данные от n8n $input = json_decode(file_get_contents('php://input'), true); if (!$input) { throw new Exception('Invalid JSON input'); } $taskId = $input['taskId'] ?? null; $response = $input['response'] ?? null; $status = $input['status'] ?? 'completed'; $error = $input['error'] ?? null; if (!$taskId) { throw new Exception('Missing taskId'); } error_log("Callback: Received response for task {$taskId}, status: {$status}"); // Обновляем запись в БД if ($status === 'error') { $stmt = $conn->prepare("UPDATE ai_responses SET status = 'error', error_message = ?, updated_at = NOW() WHERE task_id = ?"); $stmt->bind_param('ss', $error, $taskId); } else { $stmt = $conn->prepare("UPDATE ai_responses SET status = 'completed', response_data = ?, updated_at = NOW() WHERE task_id = ?"); $stmt->bind_param('ss', $response, $taskId); } if (!$stmt->execute()) { throw new Exception("Failed to update task: " . $stmt->error); } $affected = $stmt->affected_rows; $stmt->close(); $conn->close(); error_log("Callback: Updated task {$taskId}, affected rows: {$affected}"); echo json_encode([ 'success' => true, 'message' => 'Response received', 'taskId' => $taskId, 'affected' => $affected ]); } catch (Exception $e) { error_log("Callback Error: " . $e->getMessage()); http_response_code(500); echo json_encode([ 'success' => false, 'error' => $e->getMessage() ]); } ?>