-- =========================================================================
-- MIGRATION: Betulkan jadual dashboard_widgets (bug "Save Layout" Main
-- Dashboard tak berfungsi / reset ke susun atur asal)
-- Jalankan di phpMyAdmin > tab SQL, pada database SPMS sedia ada anda.
--
-- PUNCA BUG: data seed asal jadual ini (dari pemasangan pertama sistem)
-- guna nama widget_id yang tak sepadan langsung dengan apa yang
-- sebenarnya dipaparkan/disimpan oleh dashboard.php hari ini (cth.
-- 'kpi_revenue' dalam DB, tapi kod sebenar guna 'chart_status'). Ini
-- buat "Save Layout" senyap-senyap gagal simpan apa-apa (UPDATE cuma
-- padan baris yang wujud, jadi 0 baris terjejas bila widget_id tak
-- sepadan) — nampak "berjaya" (tiada ralat) tapi reset ke asal setiap
-- kali papar semula.
--
-- Migration ini: (1) buang baris lapuk yang tak digunakan langsung,
-- (2) masukkan/kemas kini baris betul untuk SEMUA widget yang
-- sebenarnya wujud dalam dashboard.php sekarang (termasuk widget
-- baharu "Group FY Trend"). INSERT ... ON DUPLICATE KEY UPDATE
-- digunakan supaya selamat dijalankan berulang kali (idempotent) —
-- kalau anda dah pernah "Save Layout" berjaya sebelum bug dibetulkan,
-- susun atur sedia ada anda TIDAK akan hilang.
-- =========================================================================

DELETE FROM dashboard_widgets WHERE widget_id NOT IN (
    'chart_status', 'chart_profitability', 'chart_division', 'chart_fy_trend',
    'list_pat_variance', 'table_monitoring'
);

INSERT INTO dashboard_widgets (widget_id, label, display_order, col_span) VALUES
('chart_status', 'Performance Status (Donut)', 1, 2),
('chart_profitability', 'Profitability: Actual vs Budget', 2, 2),
('chart_division', 'Revenue by Division', 3, 2),
('chart_fy_trend', 'Group Trend: Revenue & PAT (5 Years)', 4, 2),
('list_pat_variance', 'PAT Variance by Company', 5, 2),
('table_monitoring', 'Subsidiary Monitoring', 6, 4)
ON DUPLICATE KEY UPDATE label = VALUES(label);
-- ^ label sahaja dikemas kini bila baris dah wujud — display_order/
-- col_span SEDIA ADA (susun atur yang anda dah simpan) DIKEKALKAN,
-- bukan ditimpa balik ke lalai.
