gendesign/backend
lekss361 7eb686bd7d feat(permits): Celery beat monthly + analyze recent_permits (#105 Phase 4+5)
Closes #105 (Phase 3 geocoding — отдельный issue).

Phase 4: 'ekburg-permits-monthly' crontab(0 2 1 * *) → tasks.refresh_all
Phase 5: /analyze returns engineering.recent_permits_in_quarter +
permits_summary (rns/rve counts/area/units, by_developer top-3)

Filter: quarter prefix (3-segment cadastral match). Spatial 500m radius —
после Phase 3 geocoding.

Tests: test_analyze_recent_permits.py (3 mock), comment updates на
inline_weights/market_price (shifted execute ordering).
2026-05-16 15:03:01 +03:00
..
alembic ops: alembic baseline, pre-commit, TIGER cleanup, pg_dump scripts 2026-04-26 13:08:51 +03:00
app feat(permits): Celery beat monthly + analyze recent_permits (#105 Phase 4+5) 2026-05-16 15:03:01 +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(permits): Celery beat monthly + analyze recent_permits (#105 Phase 4+5) 2026-05-16 15:03:01 +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