From 31b13c18b1708f895e40329555a610d744c18ca2 Mon Sep 17 00:00:00 2001 From: lekss361 Date: Sun, 17 May 2026 11:57:06 +0300 Subject: [PATCH] =?UTF-8?q?fix(sf-04):=20seed=20PRINZIP=20project=20mappin?= =?UTF-8?q?gs=20=D0=B2=20objective=5Fcomplex=5Fmapping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Audit 2026-05-17: objective_corpus_room_month содержал активные сделки для Малевич (98/12m) и Ньютон парк (30/12m), но записей в objective_complex_mapping не было → mv_layout_velocity пропускал оба проекта в velocity calculations. Добавлены маппинги: - Малевич → domrf_obj_id 64701 (Строящиеся, 244кв, сдача 2027-09) - Ньютон парк → domrf_obj_id 47390 (Сданные, 411кв, крупнейший corpus) ON CONFLICT DO NOTHING — идемпотентно. REFRESH mv_layout_velocity выполняется вручную post-deploy (runbooks/Refresh_MV_Layout_Velocity.md). Closes (epic part) #271 item 4 --- data/sql/103_seed_prinzip_mappings.sql | 48 ++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 data/sql/103_seed_prinzip_mappings.sql diff --git a/data/sql/103_seed_prinzip_mappings.sql b/data/sql/103_seed_prinzip_mappings.sql new file mode 100644 index 00000000..c2dc23d9 --- /dev/null +++ b/data/sql/103_seed_prinzip_mappings.sql @@ -0,0 +1,48 @@ +-- 103_seed_prinzip_mappings.sql +-- Audit 2026-05-17: bulk insert missing PRINZIP project mappings +-- into objective_complex_mapping so mv_layout_velocity picks them up. +-- +-- Problem: objective_corpus_room_month had active deals for these projects +-- but no row in objective_complex_mapping → mv_layout_velocity JOIN skipped them. +-- +-- Audit source: audits/SiteFinder_FixList_May17.md #4 +-- +-- UNIQUE constraint on table: (objective_complex_name, objective_group) +-- MV join key: objective_complex_mapping.objective_complex_name = objective_corpus_room_month.project_name +-- One domrf_obj_id per project_name; mapped to the largest/most active corpus. +-- +-- Skipped: +-- Парк Победы — already mapped to obj_id=60160 (Строящиеся, PRINZIP) +-- Парковый квартал — 0 deals/12m, inactive +-- Первый — belongs to ГК ИКАР, NOT PRINZIP; name collision, not a real match +-- +-- After applying this migration run manually (post-deploy): +-- REFRESH MATERIALIZED VIEW CONCURRENTLY mv_layout_velocity; +-- See runbook: runbooks/Refresh_MV_Layout_Velocity.md +-- +-- Dependencies: objective_complex_mapping (exists), mv_layout_velocity (refresh separately) +-- Deploy: auto-applied by deploy.yml via _schema_migrations tracking. +-- Idempotent: ON CONFLICT (objective_complex_name, objective_group) DO NOTHING + +BEGIN; + +INSERT INTO objective_complex_mapping + (objective_complex_name, objective_group, domrf_obj_id, + match_method, is_reviewed, note) +VALUES + -- 98 deals/12m in Objective. + -- obj_id 64701 = ЖК "Малевич" (Строящиеся, 244 кв, сдача 2027-09, дев: СЗ МАЛЕВИЧ). + -- obj_id 3687 = ЖК "Малевич" (Сданный, 348 кв, сдан 2020-03, дев: PRINZIP) — исторический. + -- 64701 выбран как активный primary corpus. + ('Малевич', 'Екатеринбург', 64701, 'manual', true, + 'Audit 2026-05-17: Строящиеся 244кв сдача 2027-09; obj_id 3687 — сданный исторический'), + + -- 30 deals/12m in Objective. + -- Корпуса: obj_id 47390 (411кв Сданные), 37880 (157кв), 47393 (86кв), 47392 (0кв skip). + -- 47390 выбран как крупнейший corpus. + ('Ньютон парк', 'Екатеринбург', 47390, 'manual', true, + 'Audit 2026-05-17: largest corpus 411кв из трёх Ньютон Парк корпусов') + +ON CONFLICT (objective_complex_name, objective_group) DO NOTHING; + +COMMIT; -- 2.45.3