-- 108_param_tax.sql — parameter tarif pajak (WP-9C, Kontrak Sprint 9 §Scenario Simulation)
--
-- param_global belum punya kode tarif pajak badan (grep param_global/107_param.sql: hanya
-- TOTAL_ROOM_INV/YEAR_NEXT/SC_PCT/SC_DIST). Dibutuhkan GET /api/analytics/scenario-params
-- ("tarif pajak param") utk proyeksi PAT (Laba setelah pajak) pada model skenario client-side.
-- Default 22% = tarif PPh Badan umum (UU HPP) — EDITABLE lewat halaman admin yang sudah ada
-- (GET/PUT /api/admin/params, WP-2A) tanpa perlu deploy ulang.
--
-- IDEMPOTENSI (T-2, LAPORAN-SPRINT9.md §T-2 / ADR-001): baris ini memakai version_id = NULL
-- (tarif tahun berjalan berlaku lintas semua budget_version), dan MariaDB TIDAK menganggap
-- NULL sebagai duplikat pada UNIQUE KEY uq_param_global (version_id, param_code) — ini persis
-- jebakan yang didokumentasikan ADR-001 ("gunakan sentinel, JANGAN NULL utk kolom di UNIQUE
-- index"; di sini NULL memang makna yang benar secara bisnis, jadi solusinya BUKAN ganti ke
-- sentinel, melainkan tidak bertumpu pada ON DUPLICATE KEY UPDATE). Klaim komentar versi lama
-- ("ON DUPLICATE KEY UPDATE ... aman ... membuat statement idempoten") SALAH — terbukti
-- menambah 1 baris baru setiap re-run seed.php. Pola pengganti (sama dgn param_global
-- HPP_TARGET_PCT di 160_insight_rules.sql): INSERT ... SELECT ... WHERE NOT EXISTS, guard
-- eksplisit atas (version_id IS NULL AND param_code = ...) — re-run TIDAK PERNAH menambah baris
-- baru dan TIDAK PERNAH menimpa nilai yang sudah diedit admin (ADR-010: seed = bootstrap-only).

INSERT INTO param_global (version_id, param_code, param_value)
SELECT NULL, 'TAX_RATE_PCT', 0.22 FROM DUAL
 WHERE NOT EXISTS (
       SELECT 1 FROM param_global WHERE version_id IS NULL AND param_code = 'TAX_RATE_PCT');
