Files
aiform_prod/docs/SESSION_LOG_2025-11-19.md

75 lines
3.8 KiB
Markdown
Raw Normal View History

# Лог сессии разработки - 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 не возвращает данные - проверить формат параметров
feat: Add claim plan confirmation flow via Redis SSE Problem: - After wizard form submission, need to wait for claim data from n8n - Claim data comes via Redis channel claim:plan:{session_token} - Need to display confirmation form with claim data Solution: 1. Backend: Added SSE endpoint /api/v1/claim-plan/{session_token} - Subscribes to Redis channel claim:plan:{session_token} - Streams claim data from n8n to frontend - Handles timeouts and errors gracefully 2. Frontend: Added subscription to claim:plan channel - StepWizardPlan: After form submission, subscribes to SSE - Waits for claim_plan_ready event - Shows loading message while waiting - On success: saves claimPlanData and shows confirmation step 3. New component: StepClaimConfirmation - Displays claim confirmation form in iframe - Receives claimPlanData from parent - Generates HTML form (placeholder - should call n8n for real HTML) - Handles confirmation/cancellation via postMessage 4. ClaimForm: Added conditional step for confirmation - Shows StepClaimConfirmation when showClaimConfirmation=true - Step appears after StepWizardPlan - Only visible when claimPlanData is available Flow: 1. User fills wizard form → submits 2. Form data sent to n8n via /api/v1/claims/wizard 3. Frontend subscribes to SSE /api/v1/claim-plan/{session_token} 4. n8n processes data → publishes to Redis claim:plan:{session_token} 5. Backend receives → streams to frontend via SSE 6. Frontend receives → shows StepClaimConfirmation 7. User confirms → proceeds to next step Files: - backend/app/api/events.py: Added stream_claim_plan endpoint - frontend/src/components/form/StepWizardPlan.tsx: Added subscribeToClaimPlan - frontend/src/components/form/StepClaimConfirmation.tsx: New component - frontend/src/pages/ClaimForm.tsx: Added confirmation step to steps array
2025-11-24 13:36:14 +03:00