-- =====================================================================
-- Phase 12 — Multi-device Sync & Auto Cloud Backup — Migration
-- আগের DB-তে রান করুন: mysql -u isp_app -p ispbdcom_isp_billing < database/migration_phase12.sql
-- নতুন ইনস্টলে seed.sql-এর সাথে এটা ইতিমধ্যে merge করা আছে।
--
-- user_sessions টেবিল (Phase 0) ও backup_log টেবিল (Phase 7 stub) আগে থেকেই
-- ছিল — এই ফেজে সেগুলো প্রকৃতপক্ষে ব্যবহার করা হলো, শুধু backup_log-এ
-- কয়েকটা কলাম যোগ করা লাগলো (কে/কীভাবে ব্যাকআপ ট্রিগার হলো তা ট্র্যাক করতে)।
-- =====================================================================

USE ispbdcom_isp_billing;

ALTER TABLE backup_log
    ADD COLUMN triggered_by ENUM('cron','manual') NOT NULL DEFAULT 'cron' AFTER type,
    ADD COLUMN triggered_by_user BIGINT UNSIGNED DEFAULT NULL AFTER triggered_by,
    ADD COLUMN destination ENUM('local','remote') NOT NULL DEFAULT 'local' AFTER file_path,
    ADD COLUMN note TEXT DEFAULT NULL AFTER status,
    ADD INDEX idx_created (created_at);

ALTER TABLE backup_log
    ADD CONSTRAINT fk_backup_log_user FOREIGN KEY (triggered_by_user) REFERENCES users(id) ON DELETE SET NULL;

-- ---- Backup ও Multi-device Sync সেটিংস (system_settings key-value টেবিলেই থাকে) ----
-- 'auto_backup_enabled', 'auto_backup_time', 'multi_device_sync_enabled' Phase 0-তেই
-- placeholder হিসেবে সিড করা ছিল (seed.sql দ্রষ্টব্য) — এখন সেগুলোই আসল কাজে লাগানো
-- হলো, শুধু বাকি ডিটেইল কনফিগের জন্য নতুন key যোগ করা হচ্ছে।
INSERT IGNORE INTO system_settings (setting_key, setting_value) VALUES
('backup_retention_days', '14'),
('backup_last_run_at', ''),
('backup_remote_enabled', '0'),
('backup_remote_host', ''),
('backup_remote_port', '21'),
('backup_remote_username', ''),
('backup_remote_path', '/backups'),
('backup_remote_creds_enc', ''),
('sync_session_lifetime_minutes', '120');

-- ---- নতুন Permission Module Key ----
INSERT IGNORE INTO permissions (role, module_key, allowed) VALUES
('admin', 'backups.manage', 1),
('admin', 'sessions.manage_all', 1);
