lekss361
0cf0ab3358
fix(site-finder): narrow except clauses, fix quarter fallback WKT, add LIMIT to zouit query
...
Addresses review-bot blockers on PR #190 (4 reviews flagged same issues):
1. Narrow except in quarter_dump_lookup.py:
- line 579/651: except Exception -> (OperationalError, ProgrammingError) для outer DB queries
- line 598/668: except Exception -> (ValueError, json.JSONDecodeError) для json.loads fallback
2. _get_parcel_wkt fallback (line 506-521): cad_quarters_geom хранит 3-segment quarter keys,
а cad_num передавался 4-segment -> fallback всегда возвращал NULL. Теперь derive_quarter_cad(cad_num).
3. _get_zouit_engineering_overlaps: добавлен LIMIT 100 для unbounded jsonb_array_elements fan-out
(engineering_structures query уже имел LIMIT 50).
2026-05-16 08:55:53 +03:00
lekss361
fad815c728
ci: re-trigger Forgejo Actions after merge of main
2026-05-16 08:38:26 +03:00
lekss361
3ee2a99958
Merge main (post-PR191 competitors + PR192 forgejo workflow) into feat/115-connection-points-backend
...
# Conflicts:
# backend/app/api/v1/parcels.py
2026-05-16 08:26:42 +03:00
lekss361
e737fe5ddd
Merge remote-tracking branch 'forgejo/main' into feat/115-connection-points-backend
CI / backend (pull_request) Successful in 1m9s
CI / frontend (pull_request) Successful in 2m21s
2026-05-16 01:18:00 +03:00
lekss361
3c8bea38d0
feat(parcels): GET /{cad_num}/connection-points — engineering points (Forgejo #115 )
...
CI / backend (pull_request) Failing after 1m0s
CI / frontend (pull_request) Successful in 2m19s
KILLER feature от Макса — точки подключения к инженерным сетям + охранные
зоны как proxy для подбора инвест-участков.
Phase 1 — публичные NSPD данные (cat 36328 + 37578).
- ConnectionPointsResponse pydantic + 3 nested models
- get_connection_points() + helpers (parcel WKT, structures by boundary,
zouit overlaps) с ST_Distance(::geography) для метров
- GET endpoint с Query(radius_m, ge=50, le=2000, default=500)
- 7 tests
Closes part of #115 (Phase 1 backend).
2026-05-16 01:03:42 +03:00