docs(zouit): уточнить DISTINCT ON-комментарий + убрать stale cad_zouit из FE-типа (#1957)
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / frontend-tests (pull_request) Successful in 1m0s
CI / openapi-codegen-check (pull_request) Successful in 1m51s
CI / backend-tests (pull_request) Successful in 12m4s

Code-review nits (без изменения поведения):
- quarter_dump_lookup.py: комментарий про дедуп ошибочно утверждал, что зоны без
  рег-номера не схлопываются. На деле reg_numb_border — TEXT NOT NULL (0 NULL на
  проде), а DISTINCT ON в PG считает NULL равными. Переформулировано на точное.
- frontend/types/nspd.ts: убран устаревший 'cad_zouit' из списка возможных
  group_key (бэкенд теперь эмитит только protected/engineering/okn/natural/other).
This commit is contained in:
Light1YT 2026-06-27 14:21:01 +05:00
parent 76647bb4cf
commit bd1ed4861c
2 changed files with 4 additions and 3 deletions

View file

@ -544,8 +544,9 @@ def _get_cad_zouit_overlaps(db: Session, parcel_wkt: str) -> list[dict[str, Any]
# в ::geography для корректных м². NULLIF guard от деления на ноль → coverage None.
# #1957: cad_zouit хранит одну физическую зону 2× (одинаковый reg_numb_border,
# разный category_name) → дубль-строки в overlaps. DISTINCT ON (reg_numb_border)
# схлопывает в одну (берём наименьший id). Зоны без рег-номера (NULL) не
# схлопываются между собой — каждая остаётся отдельной строкой.
# схлопывает в одну, оставляя наименьший id (ORDER BY reg_numb_border, id).
# reg_numb_border — TEXT NOT NULL (0 NULL на проде), так что рег-номер есть у
# каждой строки и дедуп идёт по реальному идентификатору зоны.
rows = db.execute(
text(
"""

View file

@ -19,7 +19,7 @@ export interface NspdZoning {
}
export interface NspdZouitOverlap {
group_key: string; // e.g. "engineering", "okn", "natural", "protected", "other", "cad_zouit"
group_key: string; // e.g. "engineering", "okn", "natural", "protected", "other"
layer: string; // e.g. "zouit_engineering"; для cad_zouit fallback = type_zone
subcategory: string | number | null;
name: string | null;