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, таблица создана, всё работает
27 lines
1.6 KiB
SQL
27 lines
1.6 KiB
SQL
-- Создание таблицы для автосохранения драфтов форм
|
||
-- Используется для аналитики: где люди бросают заполнение
|
||
|
||
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 формате';
|
||
|