gendesign/backend
lekss361 2dd21f68b3 fix(api): /parcels/by-bbox — derive area_m2 via ST_Area + drop missing land_category
P0 prod 500 (GlitchTip backend, deploy #135+ on main): endpoint queried
cad_parcels.area_m2 and cad_parcels.land_category, but the table only has
(cad_num, geom). PR #336 (SF-B1) shipped with wrong column assumption.

Repro:
  curl 'https://gendsgn.ru/api/v1/parcels/by-bbox?min_lat=...&min_lon=...' -> 500
  ProgrammingError: column p.area_m2 does not exist

Fix: compute area from geometry via ST_Area(p.geom::geography) (meter accuracy
on a geography cast), return NULL::text for land_category until EGRN enrichment
is wired (tracking: B5 EGRN contract follow-up).

Verified inline through postgres MCP: SQL returns expected rows
(66:41:0001001:18 area 2945931 m^2, etc.) on production schema.
2026-05-18 02:06:08 +03:00
..
alembic ops: alembic baseline, pre-commit, TIGER cleanup, pg_dump scripts 2026-04-26 13:08:51 +03:00
app fix(api): /parcels/by-bbox — derive area_m2 via ST_Area + drop missing land_category 2026-05-18 02:06:08 +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(22d): domrf_catalog_object scraper — fill ~25 NULL kn_objects cols from SSR __NEXT_DATA__ (#335) 2026-05-17 21:26:22 +00:00
.dockerignore fix(scraper): диагностируем «кнопка не работает» — Redis lock + task_received log 2026-04-28 23:17:42 +03:00
.env.example feat(backend): sentry-sdk init для FastAPI + Celery (#204 backend) (#207) 2026-05-16 15:09:16 +00: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 feat(sf-b7): GET /parcels/{cad}/snapshot.pdf — 1-page WeasyPrint export (#334) 2026-05-17 21:11:03 +00:00
uv.lock feat(sf-b7): GET /parcels/{cad}/snapshot.pdf — 1-page WeasyPrint export (#334) 2026-05-17 21:11:03 +00:00