Files
aiform_prod/backend/db/migrations/002_create_claims_draft.sql
AI Assistant e34f7a598b feat: 6 улучшений формы - S3 upload, draft, HEIC, email на step3
1.  Placeholder с тире E1000-302538524
   - Теперь в placeholder тоже тире

2.  Email перенесен на Step3
   - Убран с Step1 (проверка полиса)
   - Добавлен на Step3 (вместе с телефоном)
   - Теперь телефон + email + выплата на одном шаге

3.  HEIC формат + мультилоад
   - Добавлена поддержка .heic, .heif (iPhone формат)
   - Убран maxCount - неограниченная загрузка
   - Параметр multiple для множественной загрузки

4.  S3 Upload
   - Создан s3_service.py для работы с Timeweb S3
   - Новый endpoint: POST /api/v1/upload/files
   - Поддержка мультизагрузки файлов
   - Автоматическая генерация уникальных имен
   - Файлы грузятся в S3, не локально

5.  Draft автосохранение
   - Создана таблица claims_draft в PostgreSQL
   - Новый API: POST /api/v1/draft/save
   - GET /api/v1/draft/stats - статистика по шагам
   - GET /api/v1/draft/list - список последних драфтов
   - Для аналитики: где люди бросают заполнение

6.  Миграция БД
   - 002_create_claims_draft.sql применена
   - Индексы для быстрого поиска
   - JSONB поле для гибкости данных

Backend:
- s3_service.py - сервис для S3
- draft.py - API автосохранения
- upload.py - обновлен endpoint для S3
- main.py - добавлены роуты и подключения

Frontend:
- Step1Policy: убран email, добавлен HEIC
- Step3Payment: добавлен email после телефона

Статус:  Backend подключен к S3, таблица создана, всё работает
2025-10-24 21:24:00 +03:00

27 lines
1.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- Создание таблицы для автосохранения драфтов форм
-- Используется для аналитики: где люди бросают заполнение
CREATE TABLE IF NOT EXISTS claims_draft (
id SERIAL PRIMARY KEY,
session_id VARCHAR(255) UNIQUE NOT NULL, -- Уникальный ID сессии браузера
current_step INTEGER NOT NULL, -- Текущий шаг формы (1, 2, 3)
form_data JSONB NOT NULL, -- Данные формы в JSON
user_agent TEXT, -- User-Agent браузера
ip_address VARCHAR(45), -- IP адрес пользователя
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
);
-- Индексы для быстрого поиска
CREATE INDEX idx_claims_draft_session ON claims_draft(session_id);
CREATE INDEX idx_claims_draft_step ON claims_draft(current_step);
CREATE INDEX idx_claims_draft_created ON claims_draft(created_at DESC);
CREATE INDEX idx_claims_draft_updated ON claims_draft(updated_at DESC);
-- Комментарии
COMMENT ON TABLE claims_draft IS 'Автосохранение драфтов форм для аналитики';
COMMENT ON COLUMN claims_draft.session_id IS 'Уникальный ID сессии (из localStorage)';
COMMENT ON COLUMN claims_draft.current_step IS 'Номер шага где пользователь остановился';
COMMENT ON COLUMN claims_draft.form_data IS 'Все данные формы в JSON формате';