gendesign/data/sql/42_schema_breakdown_widen.sql
2026-04-27 13:05:36 +03:00

37 lines
1.9 KiB
PL/PgSQL

-- Replace JSONB `extra` column in domrf_sold_ready_breakdown with explicit
-- typed columns. Each chart_type has exactly one discriminator field:
-- • foChart → fo_cd (already existed)
-- • regionChart → region_cd
-- • devChart → dev_calc_group_id (e.g. '6072_0' = Самолет)
-- • devValueChart → dev_group_value ('do10','do25','do50',...)
-- • cityPopulationChart→ city_population ('do50','do100','do250',...)
-- • classChart → obj_class ('typical','comfort','business','elite')
-- • readyYearChart → ready_year (INT, plan year)
-- The extra JSONB was a dumping ground for these — split them out.
BEGIN;
ALTER TABLE domrf_sold_ready_breakdown
ADD COLUMN IF NOT EXISTS region_cd INT,
ADD COLUMN IF NOT EXISTS dev_calc_group_id TEXT,
ADD COLUMN IF NOT EXISTS dev_group_value TEXT,
ADD COLUMN IF NOT EXISTS city_population TEXT,
ADD COLUMN IF NOT EXISTS obj_class TEXT,
ADD COLUMN IF NOT EXISTS ready_year INT;
ALTER TABLE domrf_sold_ready_breakdown DROP COLUMN IF EXISTS extra;
COMMENT ON COLUMN domrf_sold_ready_breakdown.region_cd IS
'Rosstat region code, populated for chart_type=regionChart';
COMMENT ON COLUMN domrf_sold_ready_breakdown.dev_calc_group_id IS
'Developer ID (matches domrf_developers.developer_id), for chart_type=devChart';
COMMENT ON COLUMN domrf_sold_ready_breakdown.dev_group_value IS
'Size bucket key for chart_type=devValueChart (do10/do25/do50/...)';
COMMENT ON COLUMN domrf_sold_ready_breakdown.city_population IS
'Population bucket key for chart_type=cityPopulationChart (do50/do100/...)';
COMMENT ON COLUMN domrf_sold_ready_breakdown.obj_class IS
'Housing class for chart_type=classChart (typical/comfort/business/elite)';
COMMENT ON COLUMN domrf_sold_ready_breakdown.ready_year IS
'Plan-completion year for chart_type=readyYearChart';
COMMIT;