Files
aiform_prod/backend/db/migrations/002_create_claims_draft.sql

29 lines
1.6 KiB
MySQL
Raw Normal View History

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
-- Создание таблицы для автосохранения драфтов форм
-- Используется для аналитики: где люди бросают заполнение
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 формате';
feat: Step2 переделан + улучшен Debug Panel с полными S3 URL Step2Details (по скриншоту): ✅ Индикатор '✅ Полис найден' вверху ✅ Select с типами событий из erv_ticket: - Задержка авиарейса (более 3 часов) - Отмена авиарейса - Пропуск стыковочного рейса - Посадка на запасной аэродром - Задержка отправки поезда - Отмена поезда - Задержка/отмена парома/круизного судна ✅ Дата наступления страхового случая (DatePicker) ✅ Номер рейса/поезда/парома ✅ Загрузка подтверждающих документов: - Посадочный талон, билет, справка и т.д. - До 10 файлов по 15MB - HEIC, PDF, фото Debug Panel улучшения: ✅ Полные S3 URL (не обрезанные) ✅ Кнопка '🔗 Открыть в новой вкладке' ✅ word-break: break-all для длинных URL ✅ Показывает все файлы из массива ✅ Для каждого файла: - Filename - File ID (UUID) - Size (KB) - Полный S3 URL (кликабельный) Теперь в Debug видно КУДА загрузилось: https://s3.twcstorage.ru/f9825c87-.../policies/20251024_213045_abc123_file.jpg Можно кликнуть и посмотреть глазами! 👀
2025-10-25 09:27:56 +03:00