init add function command for create seed depretitaion standard

This commit is contained in:
giovanni
2026-06-01 21:07:30 +07:00
parent 09b1f19d19
commit 44b82a8e38
8 changed files with 747 additions and 9 deletions
@@ -0,0 +1,15 @@
-- Hapus baris per-flock dulu supaya unique lama (house_type, day, effective_date)
-- bisa dipulihkan tanpa konflik duplikat antar-flock.
DELETE FROM house_depreciation_standards WHERE project_flock_id IS NOT NULL;
DROP INDEX IF EXISTS idx_hds_project_flock_id;
ALTER TABLE house_depreciation_standards
DROP CONSTRAINT house_depreciation_standards_htype_day_eff_pf_unique;
ALTER TABLE house_depreciation_standards
DROP COLUMN project_flock_id;
ALTER TABLE house_depreciation_standards
ADD CONSTRAINT house_depreciation_standards_house_type_day_eff_unique
UNIQUE (house_type, day, effective_date);
@@ -0,0 +1,18 @@
-- Tambah dimensi per-project-flock ke standar depresiasi.
-- Baris dengan project_flock_id NON-NULL = kurva khusus flock tsb.
-- Baris dengan project_flock_id NULL = kurva global default (fallback).
ALTER TABLE house_depreciation_standards
ADD COLUMN project_flock_id BIGINT NULL REFERENCES project_flocks(id);
-- Unique lama (house_type, day, effective_date) tidak bisa membedakan baris per-flock.
-- Ganti agar menyertakan project_flock_id (NULL dianggap distinct di PostgreSQL,
-- sehingga baris global lama tidak konflik dengan baris per-flock baru).
ALTER TABLE house_depreciation_standards
DROP CONSTRAINT house_depreciation_standards_house_type_day_eff_unique;
ALTER TABLE house_depreciation_standards
ADD CONSTRAINT house_depreciation_standards_htype_day_eff_pf_unique
UNIQUE (house_type, day, effective_date, project_flock_id);
CREATE INDEX idx_hds_project_flock_id
ON house_depreciation_standards (project_flock_id);