lekss361
|
702cb2b7d0
|
feat(tradein): extend save_listings INSERT to persist Cian-specific columns (PR #450 follow-up)
Extends base.py save_listings() to persist all 13 Cian-specific columns
added to ScrapedLot in PR #447 and listings DDL in migration 019:
living_area_m2, bedrooms_count, balconies_count, loggias_count,
description_minhash, cadastral_number, building_cadastral_number,
phones, is_homeowner, is_pro_seller, bargain_allowed, sale_type,
metro_stations.
ON CONFLICT DO UPDATE SET extended to refresh all new columns on re-scrape.
Avito/DomRF backward compat: optional fields default None → SQL NULL.
Adds 6 unit tests (test_base_save_listings.py) covering Cian INSERT,
Avito null compat, ON CONFLICT UPDATE SQL text, empty phones/metro → NULL.
|
2026-05-23 15:58:02 +03:00 |
|
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 |
|