// ======================================== // Code Node: Формирование Response для фронта (безопасная версия с проверками) // (перед финальной Response нодой) // ======================================== // Получаем данные из предыдущих шагов const claimResult = $node["CreateWebContact"]?.json?.result || {}; const sessionDataItem = $('Code in JavaScript1')?.first(); const sessionData = sessionDataItem?.json?.redis_value ? JSON.parse(sessionDataItem.json.redis_value) : {}; const userData = $node["user_get"]?.json || {}; // ← Данные из PostgreSQL: Find or Create User // Проверяем наличие unified_id (критически важно!) if (!userData.unified_id) { console.error('❌ ОШИБКА: unified_id не получен из ноды user_get!'); // Можно либо выбросить ошибку, либо продолжить без unified_id (не рекомендуется) } // Формируем ответ в формате, который ожидает фронт return { success: true, result: { claim_id: sessionData.claim_id || claimResult.claim_id, contact_id: sessionData.contact_id || claimResult.contact_id, project_id: sessionData.project_id, // Unified ID из PostgreSQL (обязательно!) unified_id: userData.unified_id, // из ноды user_get (PostgreSQL: Find or Create User) // Данные заявки ticket_id: claimResult.ticket_id, ticket_number: claimResult.ticket_number, title: claimResult.title, category: claimResult.category, status: claimResult.status, // Метаданные event_type: sessionData.event_type, current_step: sessionData.current_step || 1, updated_at: sessionData.updated_at || new Date().toISOString(), // Дополнительно is_new_contact: claimResult.is_new_contact || false } };