feat: add scenario analysis workspace
This commit is contained in:
18
apps/api/migrations/202606240006_scenario_runs.sql
Normal file
18
apps/api/migrations/202606240006_scenario_runs.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
CREATE TABLE IF NOT EXISTS app.scenario_runs (
|
||||
scenario_run_id BIGSERIAL PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
target_month TEXT NOT NULL CHECK (target_month ~ '^[0-9]{4}-[0-9]{2}$'),
|
||||
area_id TEXT REFERENCES silver.areas(area_id),
|
||||
interest_rate_delta_bps DOUBLE PRECISION NOT NULL DEFAULT 0,
|
||||
policy_signal_delta INTEGER NOT NULL DEFAULT 0 CHECK (policy_signal_delta BETWEEN -4 AND 4),
|
||||
supply_delta_pct DOUBLE PRECISION NOT NULL DEFAULT 0 CHECK (supply_delta_pct BETWEEN -100 AND 500),
|
||||
rent_delta_pct DOUBLE PRECISION NOT NULL DEFAULT 0 CHECK (rent_delta_pct BETWEEN -80 AND 200),
|
||||
notes TEXT NOT NULL DEFAULT '',
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_scenario_runs_month
|
||||
ON app.scenario_runs(target_month, scenario_run_id DESC);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_scenario_runs_area
|
||||
ON app.scenario_runs(area_id, scenario_run_id DESC);
|
||||
Reference in New Issue
Block a user