-- 数据库迁移脚本：为link_task表添加用户端需要的字段
-- 执行时间：2025-01-XX
-- 说明：为支持用户端链接状态查询功能添加字段

-- 为link_task表添加新字段
ALTER TABLE `link_task` 
ADD COLUMN `need_refresh` tinyint(1) NULL DEFAULT 0 COMMENT '是否需要刷新（0否，1是）' AFTER `updated_at`,
ADD COLUMN `refresh_time` datetime(3) NULL DEFAULT NULL COMMENT '刷新时间' AFTER `need_refresh`,
ADD COLUMN `qr_created_at` datetime(3) NULL DEFAULT NULL COMMENT '二维码创建时间' AFTER `refresh_time`,
ADD COLUMN `qr_expire_at` datetime(3) NULL DEFAULT NULL COMMENT '二维码过期时间' AFTER `qr_created_at`;

-- 添加索引以优化查询性能
ALTER TABLE `link_task` 
ADD INDEX `idx_need_refresh` (`need_refresh` ASC),
ADD INDEX `idx_qr_expire` (`qr_expire_at` ASC);

-- 更新系统配置，添加用户端相关配置
INSERT INTO `system_config` (`config_key`, `config_value`, `config_type`, `description`, `is_system`) VALUES
('user.qr_expire_seconds', '60', 'INTEGER', '用户端二维码有效期（秒）', 1),
('user.refresh_wait_seconds', '10', 'INTEGER', '用户端刷新等待时间（秒）', 1),
('user.link_expire_hours', '24', 'INTEGER', '用户端链接有效期（小时）', 1),
('user.assets_base_url', 'http://36.138.184.60:12345', 'STRING', '用户端静态资源基础URL', 1)
ON DUPLICATE KEY UPDATE 
    `config_value` = VALUES(`config_value`),
    `updated_at` = CURRENT_TIMESTAMP(3);

-- 验证表结构变更
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = DATABASE() 
  AND TABLE_NAME = 'link_task' 
  AND COLUMN_NAME IN ('need_refresh', 'refresh_time', 'qr_created_at', 'qr_expire_at')
ORDER BY ORDINAL_POSITION;
