-- ============================================================
-- 迁移脚本06: 删除is_online列 + 新增在线超时配置项
-- 幂等执行：先加配置，再删列（IF EXISTS）
-- ============================================================

-- 1. 新增系统配置项：在线超时阈值（秒）
INSERT INTO cnc_sys_config (config_key, config_value, value_type, description, updated_at)
SELECT 'online_timeout', '300', 'number', '在线超时阈值(秒)，超过此时间未Ping的机床判定为离线', NOW()
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM cnc_sys_config WHERE config_key = 'online_timeout');

-- 2. 删除 is_online 列（幂等：IF EXISTS 在 MariaDB 10.0.2+ 支持）
-- 注意：MariaDB 不支持 ALTER TABLE DROP COLUMN IF EXISTS，用存储过程实现
DROP PROCEDURE IF EXISTS drop_column_if_exists;
DELIMITER //
CREATE PROCEDURE drop_column_if_exists()
BEGIN
    IF EXISTS (SELECT 1 FROM information_schema.COLUMNS 
               WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'cnc_machine' AND COLUMN_NAME = 'is_online') THEN
        ALTER TABLE cnc_machine DROP COLUMN is_online;
    END IF;
END //
DELIMITER ;
CALL drop_column_if_exists();
DROP PROCEDURE IF EXISTS drop_column_if_exists;
