-- ============================================================================
-- 文件对象存储：sys_config 表 + sys_file 字段扩展 + 菜单更新
-- 执行环境：QA / PROD 均需执行
-- ============================================================================

-- 1. 系统配置表
CREATE TABLE IF NOT EXISTS sys_config (
    id           VARCHAR(64)  NOT NULL COMMENT 'UUID主键',
    config_key   VARCHAR(128) NOT NULL COMMENT '配置键',
    config_value TEXT                  COMMENT '配置值',
    description  VARCHAR(256)          COMMENT '配置说明',
    updated_at   DATETIME    NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (id),
    UNIQUE KEY uk_config_key (config_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统配置表';

-- 2. 种子数据：文件存储磁盘路径
INSERT IGNORE INTO sys_config (id, config_key, config_value, description, updated_at)
VALUES (REPLACE(UUID(),'-',''), 'file.storage.disk.path', '/data/mokee/gw/file', '文件对象存储磁盘根目录', NOW());

-- 3. sys_file 加字段（存储文件名 + 上传者显示名）
ALTER TABLE sys_file ADD COLUMN IF NOT EXISTS storage_file_name VARCHAR(256) DEFAULT NULL COMMENT '磁盘存储的实际文件名';
ALTER TABLE sys_file ADD COLUMN IF NOT EXISTS upload_user_name  VARCHAR(64)  DEFAULT NULL COMMENT '上传者显示名(用户姓名或系统名)';

-- 4. 菜单改：文件管理 → 文件对象储存
UPDATE sys_menu SET menu_name = '文件对象储存' WHERE menu_path = '/admin/file' AND menu_type = 2;

-- 5. 新增"系统配置"菜单（系统管理 > 系统配置，sortOrder=5）
INSERT INTO sys_menu (id, system_id, parent_id, menu_name, menu_type, menu_path, component, icon, sort_order, status, created_at)
SELECT REPLACE(UUID(),'-',''), m1.system_id, m1.id, '系统配置', 2, '/admin/config', 'admin/config/SystemConfig', 'Setting', 5, 1, NOW()
FROM sys_menu m1
WHERE m1.menu_name = '系统管理' AND m1.menu_type = 1 AND m1.parent_id = '0'
  AND NOT EXISTS (SELECT 1 FROM sys_menu m2 WHERE m2.menu_path = '/admin/config' AND m2.menu_type = 2);

-- 6. 菜单改：旧菜单文件图标改为 FolderOpened (如果之前是默认图标)
-- UPDATE sys_menu SET icon = 'FolderOpened' WHERE menu_path = '/admin/file' AND menu_type = 2 AND icon = 'Folder';
