gendesign/tradein-mvp/backend/data/sql/004_extend_trade_in_estimates.sql
lekss361 02267d0306 feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in)
- FastAPI backend: PostGIS estimator + 3 scrapers (Avito/Cian/Yandex)
- Next.js 15 frontend: tradein.html mockup design, basePath=/trade-in
- WeasyPrint PDF (Брусника-style 4-page report)
- Address autocomplete с typo-tolerance + 6 EKB presets
- Изолированный docker stack gendesign-tradein (отдельная postgres БД)
- Caddy inline routes: gendsgn.ru/trade-in/* и /trade-in/api/v1/*
- Forgejo Actions: .forgejo/workflows/deploy-tradein.yml (shell-based GHCR login)
- Триггер только по paths: tradein-mvp/** (не пересекается с deploy.yml)
- Образы: ghcr.io/lekss361/gendesign-tradein-{backend,frontend}:latest

Первый запуск на сервере (вручную, один раз):
  - создать /opt/gendesign/tradein-mvp/.env.runtime (postgres pwd, contact email)
  - docker network create gendesign_shared (если нет)
  - docker compose -p gendesign-tradein up -d
  - docker compose -p gendesign exec caddy caddy reload
2026-05-21 00:25:39 +03:00

19 lines
1,022 B
PL/PgSQL

-- Trade-In MVP — добавляем поля для PDF/UI v2 (Слой 5.2 + 6.1).
-- confidence_explanation + sources_used + data_freshness_minutes
-- (target_address, lat, lon уже есть — переименуем при необходимости позже)
BEGIN;
ALTER TABLE trade_in_estimates
ADD COLUMN IF NOT EXISTS confidence_explanation text,
ADD COLUMN IF NOT EXISTS sources_used jsonb DEFAULT '[]'::jsonb,
ADD COLUMN IF NOT EXISTS data_freshness_minutes int;
COMMENT ON COLUMN trade_in_estimates.confidence_explanation IS
'Человекочитаемое объяснение confidence — для PDF/UI';
COMMENT ON COLUMN trade_in_estimates.sources_used IS
'Список источников, использованных в этой оценке (jsonb массив строк)';
COMMENT ON COLUMN trade_in_estimates.data_freshness_minutes IS
'Минут назад был последний парсинг для самого свежего аналога';
COMMIT;