Database changes: - Add unified_id, contact_id, phone columns to clpr_claims table - Create indexes for fast lookup by these fields - Migrate existing data from payload to new columns - SQL migration: docs/SQL_ALTER_CLPR_CLAIMS_ADD_FIELDS.sql SQL improvements: - Simplify claimsave query: remove complex claim_lookup logic - Use UPSERT (INSERT ON CONFLICT) with known claim_id - Always return claim (fix NULL issue) - Store unified_id, contact_id, phone directly in table columns - SQL: docs/SQL_CLAIMSAVE_UPSERT_SIMPLE.sql Workflow enhancements: - Add branch for form submissions WITHOUT files - Create 6 new nodes: extract, prepare, save, redis, respond - Separate flow for has_files=false in IF node - Instructions: docs/N8N_FORM_GET_NO_FILES_INSTRUCTIONS.md - Node config: docs/N8N_FORM_GET_NO_FILES_BRANCH.json Migration stats: - Total claims: 81 - With unified_id: 77 - Migrated from payload: 2 Next steps: 1. Add 6 nodes to n8n workflow form_get (ID: 8ZVMTsuH7Cmw7snw) 2. Connect TRUE branch of IF node to extract_webhook_data_no_files 3. Test form submission without files 4. Verify PostgreSQL save and Redis event
3.8 KiB
3.8 KiB
Лог сессии разработки - 19 ноября 2025
Проблема
После верификации телефона не отображается список черновиков, хотя в базе данных есть заявки с unified_id = 'usr_90599ff2-ac79-4236-b950-0df85395096c'.
Что было сделано
1. Добавлено логирование в frontend
- В
ClaimForm.tsxдобавлены логи для отслеживания:- Вызов
onNextсunified_id - Проверка условий для показа черновиков
- Запрос к API
/api/v1/claims/drafts/list - Ответ от API
- Вызов
2. Добавлено логирование в backend
- В
claims.pyдобавлены логи для отладки запроса черновиков:- Тестовый COUNT запрос для проверки наличия данных в БД
- Количество найденных строк
- Детали первой строки
3. Проверка данных в БД
- Проверено напрямую через psql: есть 17 заявок для
unified_id = 'usr_90599ff2-ac79-4236-b950-0df85395096c' - Из них 3 со статусом
draft - Все заявки с каналом
telegram(неweb_form)
4. Проблема
- API
/api/v1/claims/drafts/list?unified_id=...возвращает{"success":true,"count":0,"drafts":[]} - Логи в backend не появляются (logger.info не выводится в консоль)
- SQL запрос напрямую в psql работает и возвращает данные
Текущее состояние
Frontend
unified_idприходит от n8n и отображается в консоли браузераunified_idпередается вonNextcallbackcheckDraftsвызывается с правильнымunified_id- Но API возвращает 0 черновиков
Backend
- Endpoint
/api/v1/claims/drafts/listсуществует - Запрос к БД должен работать (проверено через psql)
- Но логи не появляются, что странно
Что нужно проверить дальше
-
Почему логи не появляются?
- Проверить настройки логирования в FastAPI
- Возможно, нужно использовать
print()вместоlogger.info()
-
Почему запрос возвращает 0 результатов?
- Проверить, что
asyncpgправильно выполняет запрос - Возможно, проблема с параметрами запроса
- Проверить, что
unified_idправильно передается в SQL
- Проверить, что
-
Проверить в браузере:
- Открыть консоль разработчика
- Проверить логи
🔥 onNext вызван с unified_id: - Проверить логи
🔍 Запрос черновиков: - Проверить ответ API
🔍 Ответ API черновиков:
Файлы изменены
frontend/src/pages/ClaimForm.tsx- добавлено логированиеbackend/app/api/claims.py- добавлено логирование и тестовые запросы
Следующие шаги
- Проверить логи в браузере после перезагрузки
- Проверить, что API действительно вызывается
- Если API вызывается, но возвращает 0 - проверить SQL запрос в backend
- Если SQL работает, но asyncpg не возвращает данные - проверить формат параметров