gendesign/tradein-mvp/backend/app/tasks
bot-backend 19085547bc feat(tradein): СберИндекс monthly city-level price index pull (#887)
Data-layer impl of #887 (steps 1-3+5; client-visible estimator time-adjust
step 4 deferred to backtest-gated follow-up — estimator.py untouched).

- migration 092: sber_price_index table (additive, CREATE TABLE IF NOT EXISTS)
- migration 093: scrape_schedules seed (source=sber_index_pull, ON CONFLICT DO NOTHING)
- sber_index.py: base64 /api/sowa route builder + decoder + async fetch +
  idempotent upsert ON CONFLICT (city,period_month,dashboard)
- task wrapper + scheduler trigger + dispatch branch (monthly); 3 dashboards
  (deals/hedonic/asking) REALTY=2; per-series graceful errors; asking benchmark log

NOTE: REF_AREA codes EKB/MSK unresolved (sberindex TLS unreachable from CI;
643=РФ only) — TODO in SBER_REF_AREAS. 20 tests pass.

Refs #887, #794, #652
2026-05-31 15:32:53 +03:00
..
__init__.py feat(tradein): search matview + indexes (Phase 3.1) (#469) 2026-05-23 14:01:18 +00:00
asking_to_sold_ratio.py fix(ratio): ppm² потолок asking→sold в конфиг, default 1.2M (Refs #767) (#790) 2026-05-30 16:57:09 +00:00
cian_history_backfill.py feat(tradein): houses.cian_zhk_url column + backfill (#568) (#627) 2026-05-28 13:57:43 +00:00
deactivate_stale_avito.py feat(tradein): nightly task to deactivate stale avito listings (#759) (#862) 2026-05-31 07:19:37 +00:00
geocode_missing.py feat(estimator): exclude city-centroid listings from radius analogs (Refs #769 Part E) 2026-05-30 21:22:21 +03:00
listing_source_snapshot.py feat(tradein): per-source listing price history — schema + daily snapshot (#570) (#646) 2026-05-29 12:18:04 +00:00
refresh_search_matview.py feat(tradein): search matview + indexes (Phase 3.1) (#469) 2026-05-23 14:01:18 +00:00
sber_index_pull.py feat(tradein): СберИндекс monthly city-level price index pull (#887) 2026-05-31 15:32:53 +03:00
yandex_address_backfill.py feat(tradein): schedule yandex address backfill task (#855) (#866) 2026-05-31 07:31:10 +00:00