-- 添加恒星系统管理菜单项
-- 将其放在天体数据管理之前（sort_order=0）

-- 首先调整天体数据管理的sort_order，从1改为2
UPDATE menus SET sort_order = 2 WHERE id = 3 AND name = 'celestial_bodies';

-- 添加恒星系统管理菜单（sort_order=1，在天体数据管理之前）
INSERT INTO menus (
    parent_id,
    name,
    title,
    icon,
    path,
    component,
    sort_order,
    is_active,
    description
) VALUES (
    2,  -- parent_id: 数据管理
    'star_systems',
    '恒星系统管理',
    'StarOutlined',
    '/admin/star-systems',
    'StarSystems',
    1,  -- sort_order: 在天体数据管理(2)之前
    true,
    '管理太阳系和系外恒星系统'
) ON CONFLICT DO NOTHING;

-- 获取新插入的菜单ID并为管理员角色授权
DO $$
DECLARE
    menu_id INT;
    admin_role_id INT;
BEGIN
    -- 获取刚插入的菜单ID
    SELECT id INTO menu_id FROM menus WHERE name = 'star_systems';

    -- 获取管理员角色ID（通常是1）
    SELECT id INTO admin_role_id FROM roles WHERE name = 'admin' LIMIT 1;

    -- 为管理员角色授权
    IF menu_id IS NOT NULL AND admin_role_id IS NOT NULL THEN
        INSERT INTO role_menus (role_id, menu_id)
        VALUES (admin_role_id, menu_id)
        ON CONFLICT DO NOTHING;
    END IF;
END $$;

-- 验证结果
SELECT id, name, title, path, parent_id, sort_order
FROM menus
WHERE parent_id = 2
ORDER BY sort_order, id;
