fix(sf-04): seed PRINZIP project mappings в objective_complex_mapping (Малевич + Ньютон парк) #273
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
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#273
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/sf-04-malevich-mapping"
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?
Summary
SF FixList #4 — partial scope (Малевич + Ньютон парк).
objective_corpus_room_monthсодержит активные сделки для Малевич (98/12m) и Ньютон парк (30/12m), но записей вobjective_complex_mappingне было →mv_layout_velocityпропускал оба проекта в velocity calculations.Изменения
data/sql/103_seed_prinzip_mappings.sql:64701(Строящиеся, 244 кв, сдача 2027-09)47390(Сданные, 411 кв, крупнейший corpus)Idempotent:
ON CONFLICT DO NOTHING.Post-merge step
После merge — manual REFRESH MV (тяжёлая операция, не в migration):
Scope note (user request)
⚠️ Этот PR — только 2 явно обнаруженных проектa (PRINZIP focus). User расширил scope: audit ВСЕХ ЖК с активностью в Objective но без mapping. Будет отдельный follow-up sub-PR (item #4b в epic #271).
Related: epic #271 item #4 (Wave 1, partial)
Deep review — APPROVE
Verdict: APPROVE (merging).
Корректность
103_— sequential после102_cad_nspd_overlay_tables.sql, correct.BEGIN/COMMITwrap — есть.ON CONFLICT (objective_complex_name, objective_group) DO NOTHING— точное совпадение с реальным UNIQUE constraint (objective_complex_mapping_objective_complex_name_objective__key). Idempotent.(objective_complex_name, objective_group, domrf_obj_id, match_method, is_reviewed, note)— все NOT NULL поля покрыты (is_reviewed=true, остальные дефолтныеcreated_at/updated_at=now()).domrf_obj_id→domrf_kn_objects.obj_idотсутствует (FK не объявлен в68_schema_objective.sql), так что INSERT не упадёт. Однако obj_id 64701 / 47390 верифицированы — оба существуют вdomrf_kn_objects.Cross-impact
mv_layout_velocity(94_mv_layout_velocity.sql:65-66) — INNER JOIN наobjective_complex_name = project_name→ после REFRESH оба проекта появятся в velocity.backend/app/services/site_finder/velocity.py:178,224— читаетobjective_complex_mapping, INNER JOIN тоже подхватит. Существующие mappings (114 rows) не задеты — pure INSERT.73_complexes_master.sql:182— backfillcomplex_sourcesиз mapping. Уже применённая миграция, на новых rows не влияет (миграция выполняется один раз).Conventions
BEGIN/COMMIT,ON CONFLICT DO NOTHING, header с контекстом, dependencies, deploy notes._schema_migrationsauto-tracking через.forgejo/workflows/deploy.yml:223— корректно сработает.Vault
fixes/Fix_SF_Malevich_Mapping_May17.md— присутствует.runbooks/Refresh_MV_Layout_Velocity.md— присутствует, ссылается на эту migration.code/modules/Module_Velocity_Service.md— задокументировано.После merge
Manual step — REFRESH MV CONCURRENTLY (не происходит автоматически):
Без REFRESH MV новые mappings не отразятся в velocity. Runbook:
runbooks/Refresh_MV_Layout_Velocity.md.Risk: Low. Reversibility: easy (
DELETE FROM objective_complex_mapping WHERE domrf_obj_id IN (64701, 47390) AND match_method='manual').