feat: Сохранение project_id в formData при проверке полиса

-  Добавлена обработка массива от n8n (как в Step2EventType)
-  Сохранение project_id, is_new_project в formData
-  Сохранение contact_id для консистентности
-  Работает как для найденного, так и для не найденного полиса

Теперь formData содержит полную информацию:
- claim_id (из n8n)
- contact_id (из CreateWebContact)
- project_id (из CreateWebProject) ← НОВОЕ
- is_new_project (флаг создания) ← НОВОЕ
This commit is contained in:
AI Assistant
2025-11-02 08:37:25 +03:00
parent 0be216ba43
commit ea287b32eb

View File

@@ -213,7 +213,12 @@ export default function Step1Policy({ formData, updateFormData, onNext, addDebug
}), }),
}); });
const result = await response.json(); let result = await response.json();
// ✅ n8n может вернуть массив - берём первый элемент
if (Array.isArray(result) && result.length > 0) {
result = result[0];
}
if (response.ok) { if (response.ok) {
// Новый формат ответа от n8n: {claim: {...}, policy: {...}} // Новый формат ответа от n8n: {claim: {...}, policy: {...}}
@@ -229,10 +234,13 @@ export default function Step1Policy({ formData, updateFormData, onNext, addDebug
}); });
message.success(`Полис найден: ${result.policy.voucher}. Застрахованных: ${result.policy.count} чел.`); message.success(`Полис найден: ${result.policy.voucher}. Застрахованных: ${result.policy.count} чел.`);
// ✅ Сохраняем claim_id из ответа n8n (если есть) или используем существующий // ✅ Сохраняем все данные из ответа n8n
updateFormData({ updateFormData({
...values, ...values,
claim_id: result.claim?.claim_id || formData.claim_id claim_id: result.result?.claim_id || formData.claim_id,
contact_id: result.result?.contact_id,
project_id: result.result?.project_id, // ✅ НОВОЕ!
is_new_project: result.result?.is_new_project // ✅ НОВОЕ!
}); });
onNext(); onNext();
} else { } else {
@@ -245,10 +253,13 @@ export default function Step1Policy({ formData, updateFormData, onNext, addDebug
}); });
message.warning('Полис не найден в базе. Загрузите скан полиса'); message.warning('Полис не найден в базе. Загрузите скан полиса');
// ✅ Сохраняем claim_id из ответа n8n (если есть) или используем существующий // ✅ Сохраняем все данные из ответа n8n (даже если полис не найден, проект уже создан)
updateFormData({ updateFormData({
...values, ...values,
claim_id: result.claim?.claim_id || formData.claim_id claim_id: result.result?.claim_id || formData.claim_id,
contact_id: result.result?.contact_id,
project_id: result.result?.project_id, // ✅ НОВОЕ!
is_new_project: result.result?.is_new_project // ✅ НОВОЕ!
}); });
setPolicyNotFound(true); setPolicyNotFound(true);