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, таблица создана, всё работает
This commit is contained in:
26
backend/db/migrations/002_create_claims_draft.sql
Normal file
26
backend/db/migrations/002_create_claims_draft.sql
Normal file
@@ -0,0 +1,26 @@
|
||||
-- Создание таблицы для автосохранения драфтов форм
|
||||
-- Используется для аналитики: где люди бросают заполнение
|
||||
|
||||
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 формате';
|
||||
|
||||
Reference in New Issue
Block a user