gendesign/backend
lekss361 614c951998 feat(analyze): add market_price из mv_quarter_price_per_m2 (#33 PR B)
POST /analyze returns market_price из mv_quarter_price_per_m2 (52K quarters).
Fields: p25/median/p75/mean/median_{6,12,24}m/deals_count/last_deal_date.
source='quarter_mv' либо 'no_data'. district.median_price_per_m2 kept для backward-compat.

MarketPrice BaseModel в schemas. 3 mock tests.
2026-05-16 14:18:35 +03:00
..
alembic ops: alembic baseline, pre-commit, TIGER cleanup, pg_dump scripts 2026-04-26 13:08:51 +03:00
app feat(analyze): add market_price из mv_quarter_price_per_m2 (#33 PR B) 2026-05-16 14:18:35 +03:00
db/init ops: alembic baseline, pre-commit, TIGER cleanup, pg_dump scripts 2026-04-26 13:08:51 +03:00
output feat(geo): NSPD bulk-fetcher без Playwright + resume-friendly UI 2026-05-11 08:53:28 +03:00
tests feat(analyze): add market_price из mv_quarter_price_per_m2 (#33 PR B) 2026-05-16 14:18:35 +03:00
.dockerignore fix(scraper): диагностируем «кнопка не работает» — Redis lock + task_received log 2026-04-28 23:17:42 +03:00
.env.example add log 2026-04-27 18:52:21 +03:00
.env.runtime.example sprint1: nspd scraper industrialization, per-bucket elasticity, cadastre cross-check, sentry releases 2026-04-30 21:51:19 +03:00
alembic.ini ops: alembic baseline, pre-commit, TIGER cleanup, pg_dump scripts 2026-04-26 13:08:51 +03:00
debug.log feat(geo): NSPD bulk-fetcher без Playwright + resume-friendly UI 2026-05-11 08:53:28 +03:00
Dockerfile fix(scraper): диагностируем «кнопка не работает» — Redis lock + task_received log 2026-04-28 23:17:42 +03:00
pyproject.toml fix(parcels): _parse_floors handle int (post-migration #169) (#176) 2026-05-15 15:08:16 +03:00
uv.lock chore(infra): correct frontend healthcheck + tighten depends_on (re-apply #117) (#120) 2026-05-14 23:24:47 +03:00