-- =============================================================================
-- trade 模块 admin 权限点登记 SQL（U2 经济：admin 赋余额 / 赋订阅 两端点鉴权所需 system_menu 种子）
-- 文件：game-cloud/game-module-trade/sql/trade_menu.sql
-- 设计依据：U2 R-ECON（docs/plans/2026-06-18-002）+ TradeAdminController @PreAuthorize('trade:account:grant' / 'trade:subscription:grant')。
--
-- ⚠️ 为什么不进 Flyway V21（与 biz_menu.sql 同理）：
--   1) V21.0.0__create_game_trade_subscription.sql 两副本（contracts/db-schemas/ + huijing-server/.../db/migration/）必须字节一致（md5 全等），
--      把权限 seed 塞进 V21 会破坏副本字节一致、触发 flyway validate 崩；
--   2) huijing 菜单 seed 一贯走独立 SQL（sql/mysql/ruoyi-vue-pro.sql / game-module-biz/sql/biz_menu.sql 同范式），
--      权限点不属 Flyway 业务表迁移范畴。故 trade 权限点照「单独菜单初始化 SQL」方式登记，与 V21 解耦、不破副本一致性。
--
-- 执行方式（mini-desktop staging，幂等可重复执行；INSERT IGNORE 撞 id 即跳过）：
--   mysql --default-character-set=utf8mb4 -h<host> -u<user> -p<pwd> <db> < game-cloud/game-module-trade/sql/trade_menu.sql
--   （含中文，务必 --default-character-set=utf8mb4 防乱码。）
--
-- 放行说明：
--   huijing 超级管理员角色（system_role.code='super_admin'，type=1）对 @ss.hasPermission 全量放行（*:*:*），
--   登记菜单行后超管即可调用赋余额/赋订阅端点；分配给普通运营角色由运营在 game-admin「角色管理」按需勾选（不在本 SQL）。
--   id 取 7110~7112（biz_menu.sql 已占 7100~7107，huijing base seed system_menu 7110+ 区间未占用，避免碰撞）。
-- 范围：本 SQL 仅登记 U2 新增的赋余额/赋订阅两权限点（NO-MERGE 范围）；trade 其余 withdraw/income/report 权限点不在本次范围。
-- =============================================================================

-- 父菜单：经营管理（type=2 菜单，parent_id=0 顶级；前端路由/组件由前端按需补，本 SQL 仅登记后端鉴权所需节点）
INSERT IGNORE INTO `system_menu`
  (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`,
   `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
  (7110, '经营管理', '', 2, 110, 0, 'trade-ops', 'ep:wallet', 'trade/ops/index', 'TradeOps',
   0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');

-- 2 个按钮权限点（type=3 按钮，parent_id=7110，对齐 TradeAdminController U2 端点 @PreAuthorize）
INSERT IGNORE INTO `system_menu`
  (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`,
   `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
  (7111, 'admin 赋余额', 'trade:account:grant',      3, 1, 7110, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0'),
  (7112, 'admin 赋订阅', 'trade:subscription:grant', 3, 2, 7110, '', '', NULL, NULL, 0, b'1', b'1', b'1', '1', NOW(), '1', NOW(), b'0');
