-- =========================================================================
-- MIGRATION: Buang MFA, tambah Username + Soalan Keselamatan
-- Jalankan fail ini di phpMyAdmin (tab SQL) pada database SPMS yang
-- SUDAH wujud (cth. spms.kariah.net) — jangan import semula skema penuh,
-- itu akan gagal sebab jadual sudah ada.
-- =========================================================================

ALTER TABLE app_users
    DROP COLUMN IF EXISTS mfa_secret,
    DROP COLUMN IF EXISTS mfa_enabled;

ALTER TABLE app_users
    ADD COLUMN username VARCHAR(50) NULL AFTER user_id,
    ADD COLUMN security_question VARCHAR(255) NULL AFTER password_hash,
    ADD COLUMN security_answer_hash VARCHAR(255) NULL AFTER security_question;

-- Isi username sementara (guna bahagian sebelum @ pada email) untuk
-- pengguna sedia ada supaya tiada NULL bila UNIQUE constraint ditambah.
UPDATE app_users SET username = SUBSTRING_INDEX(email, '@', 1) WHERE username IS NULL;

-- Isi placeholder soalan keselamatan untuk pengguna sedia ada — MEREKA
-- WAJIB kemaskini soalan sebenar di /account-security.php selepas log
-- masuk kali pertama pasca-migration (lihat panduan).
UPDATE app_users
SET security_question = 'Sila tetapkan soalan keselamatan anda',
    security_answer_hash = ''
WHERE security_answer_hash IS NULL;

ALTER TABLE app_users
    MODIFY COLUMN username VARCHAR(50) NOT NULL,
    MODIFY COLUMN security_question VARCHAR(255) NOT NULL,
    MODIFY COLUMN security_answer_hash VARCHAR(255) NOT NULL,
    ADD UNIQUE KEY uniq_username (username);
