Commit Graph

14 Commits

Author SHA1 Message Date
AI Assistant
3621ae6021 feat: Session persistence with Redis + Draft management fixes
- Implement session management API (/api/v1/session/create, verify, logout)
- Add session restoration from localStorage on page reload
- Fix session_id priority when loading drafts (use current, not old from DB)
- Add unified_id and claim_id to wizard payload sent to n8n
- Add Docker volume for frontend HMR (Hot Module Replacement)
- Add comprehensive session logging for debugging

Components updated:
- backend/app/api/session.py (NEW) - Session management endpoints
- backend/app/main.py - Include session router
- frontend/src/components/form/Step1Phone.tsx v2.0 - Create session after SMS
- frontend/src/pages/ClaimForm.tsx v3.8 - Session restoration & priority fix
- frontend/src/components/form/StepWizardPlan.tsx v1.4 - Add unified_id/claim_id
- docker-compose.yml - Add frontend volume for live reload

Session flow:
1. User verifies phone -> session created in Redis (24h TTL)
2. session_token saved to localStorage
3. Page reload -> session restored automatically
4. Draft selected -> current session_id used (not old from DB)
5. Wizard submit -> unified_id, claim_id, session_id sent to n8n
6. Logout -> session removed from Redis & localStorage

Fixes:
- Session token not persisting after page reload
- unified_id missing in n8n webhook payload
- Old session_id from draft overwriting current session
- Frontend changes requiring container rebuild
2025-11-20 18:31:42 +03:00
AI Assistant
4c8fda5f55 Добавлено логирование для отладки черновиков
- Добавлены логи в frontend (ClaimForm.tsx) для отслеживания unified_id и запросов к API
- Добавлены логи в backend (claims.py) для отладки SQL запросов
- Создан лог сессии с описанием проблемы и текущего состояния
- Проблема: API возвращает 0 черновиков, хотя в БД есть данные
2025-11-19 18:46:48 +03:00
AI Assistant
cd2ff8e61b feat: Добавлен backend proxy для создания контакта
Проблема:
- Step1Phone делал запрос НАПРЯМУЮ к n8n (палил webhook URL)
- В backend логах не было видно что n8n возвращает для контакта
- Нельзя было отследить contact_id, claim_id, is_new_contact

Решение:
 Добавлен endpoint /api/n8n/contact/create в n8n_proxy.py
 Step1Phone.tsx теперь использует proxy вместо прямого URL
 Backend логирует полный response от n8n (contact_id, claim_id и тд)

Теперь весь трафик к n8n идёт через backend proxy!
2025-11-02 10:40:57 +03:00
AI Assistant
c6d848fd14 fix: Корректное извлечение данных из n8n response в Step1Phone
Проблема:
- n8n возвращает [{success: true, result: {claim_id, contact_id, ...}}]
- Код пытался взять data.claim_id вместо data.result.claim_id

Исправление:
-  Обработка массива от n8n
-  Извлечение данных из result: const result = crmResult.result || crmResult
-  Улучшенное логирование для отладки
-  Проверка crmResult.success перед обработкой

Теперь formData корректно получает:
- claim_id (от n8n)
- contact_id (от CreateWebContact)
- is_new_contact (флаг)
2025-11-02 08:42:41 +03:00
AI Assistant
b06fdb731c fix: claim_id теперь генерируется только на бэкенде (n8n)
-  Удалена локальная генерация claim_id в ClaimForm.tsx
-  claim_id создаётся n8n при SMS верификации
-  Step1Phone: передаёт session_id в n8n, сохраняет claim_id
-  Step1Policy: сохраняет claim_id из ответа n8n при проверке полиса
-  Добавлено детальное логирование для отладки
- 📝 PROJECT_TIMELINE.md - полная хронология проекта (24 окт - 1 ноя)
2025-11-01 16:53:10 +03:00
AI Assistant
89a182bc7b fix: Интеграция n8n webhook для создания контакта после SMS
- Step1Phone теперь вызывает n8n webhook после SMS верификации
- Webhook создаёт/находит контакт в CRM через CreateWebContact
- Возвращает: contact_id, claim_id, is_new_contact
- Данные сохраняются в formData для дальнейшей работы
- Исправлена нормализация телефона в sms_service (убираем +)
- Отключен rate limiting SMS для тестирования
- Backend подключён к внешнему Redis (crm.clientright.ru:6379)
- Добавлены поля contact_id, is_new_contact в FormData
- Frontend пересобран с новым кодом
2025-11-01 13:31:05 +03:00
AI Assistant
6708092662 fix: Формат телефона БЕЗ + (79001234567 вместо +79001234567)\n\n- Step1Phone: sendCode и verifyCode отправляют 7XXXXXXXXXX\n- Step3Payment: DEV MODE кнопки используют формат без +\n- Совместимость с vTiger CRM (mobile поле хранит без +) 2025-10-30 18:54:05 +03:00
AI Assistant
fe5cbdd756 ui: Добавлена DEV MODE кнопка на шаг 1 (телефон)\n\n- Кнопка 'Далее → (Step 2) [пропустить]'\n- Автозаполняет phone=+79001234567, email=test@test.ru\n- Автоматически подтверждает телефон и переходит на Step 2 2025-10-30 16:02:02 +03:00
AI Assistant
c9ed114dd4 fix: API вызовы через относительные пути (proxy)\n\n- Step1Phone: /api/v1/sms/send, /api/v1/sms/verify\n- ClaimForm: /api/v1/claims/create 2025-10-30 10:00:28 +03:00
AI Assistant
14d1b6fb63 ui: Телефон вводится без +7, префикс зашит (addonBefore)\n\n- Валидация: 10 цифр без кода страны\n- В API отправляется с +7\n- Плейсхолдер 9001234567, maxLength=10 2025-10-30 09:54:14 +03:00
AI Assistant
3caf855d4a ui: Убран email со шага 1, перенесён на последний шаг\n\n- Step1Phone: только телефон + SMS\n- Step3Payment: добавлено поле email 2025-10-30 09:52:26 +03:00
AI Assistant
58a12a3c05 feat: Телефон перенесен на шаг 1 (SMS верификация)\n\n- Новый шаг Step1Phone.tsx (отправка/проверка SMS)\n- ClaimForm: новая последовательность шагов (Телефон -> Полис -> Тип -> Документы -> Оплата)\n- Step3Payment: убран блок верификации телефона 2025-10-30 09:50:26 +03:00
AI Assistant
cfd84e0f9d refactor: Изменен порядок формы - проверка полиса на первом шаге
Изменения в UX:
- Шаг 1: Проверка полиса (было: телефон + SMS)
- Шаг 2: Детали происшествия (без изменений)
- Шаг 3: Телефон + SMS + Выплата (было: только выплата)

Обновленные компоненты:
- Удален: Step1Phone.tsx
- Создан: Step1Policy.tsx - проверка полиса через API
- Обновлен: Step3Payment.tsx - добавлена SMS верификация
- Обновлен: ClaimForm.tsx - новая структура шагов

Логика: сначала проверяем полис, потом детали, в конце верификация телефона и выплата
2025-10-24 20:40:44 +03:00
AI Assistant
0f82eef08d 🚀 MVP: FastAPI + React форма с SMS верификацией
 Инфраструктура: PostgreSQL, Redis, RabbitMQ, S3
 Backend: SMS сервис + API endpoints
 Frontend: React форма (3 шага) + SMS верификация
2025-10-24 16:19:58 +03:00