-- ============================================================
-- 系统路由表 (sys_routes) 更新脚本
-- 目的：根据实际 app/routes 目录和期望菜单结构更新路由配置
-- 生成时间: 2025-11-17
-- ============================================================

-- ============================================================
-- 第 1 步：删除废弃的路由
-- ============================================================

-- 删除废弃的一级菜单及其子路由
DELETE FROM sys_routes WHERE id IN (3, 4, 5, 6);

-- ============================================================
-- 第 2 步：调整现有路由的层级结构
-- ============================================================

-- 2.1 将 rule-groups 改为 rules 的子级（评查点分组）
UPDATE sys_routes
SET parent_id = 41,
    sort_order = 1,
    route_title = '评查点分组'
WHERE id = 43;

-- 2.2 将 prompts 改为 settings 的子级（稍后创建 settings 父级）
-- 注意：先创建 settings 路由后再执行此更新
-- UPDATE sys_routes SET parent_id = 53, sort_order = 2 WHERE id = 45;

-- 2.3 将 document-types 改为 settings 的子级
-- UPDATE sys_routes SET parent_id = 53, sort_order = 1 WHERE id = 47;

-- 2.4 更新合同模板搜索的标题
UPDATE sys_routes
SET route_title = '智能搜索'
WHERE id = 39;

-- ============================================================
-- 第 3 步：添加新的一级菜单 - 系统设置
-- ============================================================

INSERT INTO sys_routes (
    id,
    route_path,
    route_name,
    route_title,
    parent_id,
    icon,
    sort_order,
    is_hidden,
    is_cache,
    component,
    meta
) VALUES (
    53,
    '/settings',
    'Settings',
    '系统设置',
    NULL,
    'el-icon-setting',
    20,
    false,
    true,
    'views/settings/Index.vue',
    '{}'
);

-- 现在更新 prompts 和 document-types 的父级
UPDATE sys_routes SET parent_id = 53, sort_order = 2, route_title = '提示词管理' WHERE id = 45;
UPDATE sys_routes SET parent_id = 53, sort_order = 1, route_title = '文档类型' WHERE id = 47;

-- ============================================================
-- 第 4 步：添加缺失的路由
-- ============================================================

-- 4.1 添加 /rules/list - 评查点列表（作为 rules 的子级）
INSERT INTO sys_routes (
    route_path,
    route_name,
    route_title,
    parent_id,
    icon,
    sort_order,
    is_hidden,
    is_cache,
    component,
    meta
) VALUES (
    '/rules/list',
    'RulesList',
    '评查点列表',
    41,
    NULL,
    2,
    false,
    true,
    'views/rules/List.vue',
    '{}'
);

-- 4.2 添加 /rules-files - 评查文件列表（作为 rules 的子级）
INSERT INTO sys_routes (
    route_path,
    route_name,
    route_title,
    parent_id,
    icon,
    sort_order,
    is_hidden,
    is_cache,
    component,
    meta
) VALUES (
    '/rules-files',
    'RulesFiles',
    '评查文件列表',
    41,
    NULL,
    3,
    false,
    true,
    'views/rules/Files.vue',
    '{}'
);

-- 4.3 添加 /contract-template/list - 合同列表（作为 contract-template 的子级）
INSERT INTO sys_routes (
    route_path,
    route_name,
    route_title,
    parent_id,
    icon,
    sort_order,
    is_hidden,
    is_cache,
    component,
    meta
) VALUES (
    '/contract-template/list',
    'ContractTemplateList',
    '合同列表',
    38,
    NULL,
    2,
    false,
    true,
    'views/contract-template/List.vue',
    '{}'
);

-- 4.4 添加 /reviews - 评查详情页（隐藏路由，不在侧边栏显示）
INSERT INTO sys_routes (
    route_path,
    route_name,
    route_title,
    parent_id,
    icon,
    sort_order,
    is_hidden,
    is_cache,
    component,
    meta
) VALUES (
    '/reviews',
    'Reviews',
    '评查详情',
    NULL,
    NULL,
    99,
    true,
    true,
    'views/reviews/Index.vue',
    '{}'
);

-- ============================================================
-- 第 5 步：调整排序顺序，使菜单符合期望结构
-- ============================================================

-- 期望的一级菜单顺序：
-- 1. 系统概览
-- 2. 文档管理
-- 3. 评查规则库
-- 4. 合同模板
-- 5. 系统设置

UPDATE sys_routes SET sort_order = 1 WHERE id = 31;  -- /home (系统概览)
UPDATE sys_routes SET sort_order = 2 WHERE id = 2;   -- /documents (文档管理)
UPDATE sys_routes SET sort_order = 3 WHERE id = 41;  -- /rules (评查规则库)
UPDATE sys_routes SET sort_order = 4 WHERE id = 38;  -- /contract-template (合同模板)
UPDATE sys_routes SET sort_order = 5 WHERE id = 53;  -- /settings (系统设置)

-- 其他菜单（交叉评查、AI助手等）排在后面
UPDATE sys_routes SET sort_order = 6 WHERE id = 35;  -- /cross-checking (交叉评查)
UPDATE sys_routes SET sort_order = 7 WHERE id = 40;  -- /chat-with-llm (AI法务助手)
UPDATE sys_routes SET sort_order = 8 WHERE id = 51;  -- /files (文件管理)
UPDATE sys_routes SET sort_order = 9 WHERE id = 49;  -- /config-lists (配置列表)

-- ============================================================
-- 第 6 步：隐藏不需要在菜单中显示的路由
-- ============================================================

-- 隐藏入口页（不在侧边栏显示）
UPDATE sys_routes SET is_hidden = true WHERE id = 30;  -- /

-- ============================================================
-- 第 7 步：验证更新结果
-- ============================================================

-- 查看更新后的一级菜单
SELECT id, route_path, route_name, route_title, parent_id, icon, sort_order, is_hidden
FROM sys_routes
WHERE parent_id IS NULL
ORDER BY sort_order;

-- 查看 /rules 的子菜单
SELECT id, route_path, route_name, route_title, parent_id, icon, sort_order, is_hidden
FROM sys_routes
WHERE parent_id = 41
ORDER BY sort_order;

-- 查看 /contract-template 的子菜单
SELECT id, route_path, route_name, route_title, parent_id, icon, sort_order, is_hidden
FROM sys_routes
WHERE parent_id = 38
ORDER BY sort_order;

-- 查看 /settings 的子菜单
SELECT id, route_path, route_name, route_title, parent_id, icon, sort_order, is_hidden
FROM sys_routes
WHERE parent_id = 53
ORDER BY sort_order;

-- ============================================================
-- 第 8 步：清理 role_route 表中的废弃路由关联
-- ============================================================

-- 删除指向已废弃路由的角色-路由关联
DELETE FROM role_route
WHERE route_id IN (3, 4, 5, 6);

-- ============================================================
-- 完成！
-- ============================================================

-- 提示：执行此脚本后，请重新登录系统以刷新路由权限
