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
74 lines
3.8 KiB
Markdown
74 lines
3.8 KiB
Markdown
# Лог сессии разработки - 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` передается в `onNext` callback
|
||
- `checkDrafts` вызывается с правильным `unified_id`
|
||
- Но API возвращает 0 черновиков
|
||
|
||
### Backend
|
||
- Endpoint `/api/v1/claims/drafts/list` существует
|
||
- Запрос к БД должен работать (проверено через psql)
|
||
- Но логи не появляются, что странно
|
||
|
||
## Что нужно проверить дальше
|
||
|
||
1. **Почему логи не появляются?**
|
||
- Проверить настройки логирования в FastAPI
|
||
- Возможно, нужно использовать `print()` вместо `logger.info()`
|
||
|
||
2. **Почему запрос возвращает 0 результатов?**
|
||
- Проверить, что `asyncpg` правильно выполняет запрос
|
||
- Возможно, проблема с параметрами запроса
|
||
- Проверить, что `unified_id` правильно передается в SQL
|
||
|
||
3. **Проверить в браузере:**
|
||
- Открыть консоль разработчика
|
||
- Проверить логи `🔥 onNext вызван с unified_id:`
|
||
- Проверить логи `🔍 Запрос черновиков:`
|
||
- Проверить ответ API `🔍 Ответ API черновиков:`
|
||
|
||
## Файлы изменены
|
||
|
||
1. `frontend/src/pages/ClaimForm.tsx` - добавлено логирование
|
||
2. `backend/app/api/claims.py` - добавлено логирование и тестовые запросы
|
||
|
||
## Следующие шаги
|
||
|
||
1. Проверить логи в браузере после перезагрузки
|
||
2. Проверить, что API действительно вызывается
|
||
3. Если API вызывается, но возвращает 0 - проверить SQL запрос в backend
|
||
4. Если SQL работает, но asyncpg не возвращает данные - проверить формат параметров
|
||
|
||
|