feat(tradein/matching): region_code у houses — вывод, а не выдумка (#3051 п.4) #3121
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3121
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/3051-houses-region-code"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Шард п.4 части 1/3 «Москвы» (#3051, эпик #2989). Разблокирует p1 #3052 (гард по полигону требует
region_codeу houses).Замер перед правкой (Poincare, 27.08)
10 362 дома: 9 719 выводятся геометрией в регион 66 · 620 без geom · 23 порченых — ЕКБ-адреса с чужими координатами и живыми ссылками листингов: «Вильгельма де Геннина» на Байкале (4 ссылки), «Учителей» в Таллине (114), «Кронштадская» в Питере (38), и 3 дома с координатами в bbox Москвы — тоже порча («Крауля, гп 1», «Академика Ландау»), не московские дома.
Правило: регион выводится или NULL — никогда не выдумывается
Миграция 272 (гейт lock_timeout пройден, идемпотентна): колонка + бэкфилл
region_code=66только по bbox региона 66 — значения байт-в-байт из реестра #3116, синхронизацию SQL↔реестр держит тест. 77 на бэкфилле не присваивается вообще. Карантин NULL: 620 безгеомных + 23 порченых.NOT NULLиз постановки — отдельной миграцией, когда карантин опустеет (иначе ограничение заставит выдумывать).Запись (
base.py→ контракт → адаптер →matching/houses.py): новый дом наследует регион РАЗВЁРТКИ (тот жеregion_code, что уходит вlistings.region_code), только если координаты не противоречат:Матчинг-ЗАПРОСЫ не тронуты — гард по региону это #3052.
Проверки
test_3051_houses_region_code.py(6): синхронизация bbox миграции с реестром + nullable-форма DDL; наследование/карантин/легаси/вне-bbox на реальномmatch_or_create_house(fake-db, тиры промахиваются). На main: 5 красных (нового параметра нет), 1 зелёный (форма миграции)Приёмка после деплоя:
region_code=66у ~9 719, NULL у ~643; warning в логах при первом же порченом геокоде.🤖 Generated with Claude Code