docs(zouit): уточнить DISTINCT ON-комментарий + убрать stale cad_zouit из FE-типа (#1957)
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:
parent
76647bb4cf
commit
bd1ed4861c
2 changed files with 4 additions and 3 deletions
|
|
@ -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(
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue