-- ============================================================
-- 新增 cms_navigation.url 字段
-- 用途: 存储栏目/导航的自定义链接地址, 与 path(路由地址) 相互独立。
--       后台保存时写入该字段; 网站端导航优先使用 url, 未设置则回退 path。
-- 配合代码侧改动:
--   - CmsNavigation 实体新增 url 字段 (MyBatis-Plus 自动映射列 url)
--   - 网站端 getNavLink 优先使用 url; 外链原样返回, 不追加 navId
-- 执行环境: 各租户业务库 (cms_navigation 为全局表)
-- 执行方式: 幂等, 可重复执行 (已存在 url 列则跳过)
-- ============================================================

-- 1. 幂等新增 url 列
SET @db = DATABASE();
SET @exists = (
    SELECT COUNT(*)
    FROM information_schema.columns
    WHERE table_schema = @db
      AND table_name   = 'cms_navigation'
      AND column_name  = 'url'
);
SET @sql = IF(
    @exists = 0,
    'ALTER TABLE cms_navigation ADD COLUMN url VARCHAR(500) DEFAULT NULL COMMENT ''自定义链接地址(优先级高于path)''',
    'SELECT 1 AS skipped'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- 2. 验证字段已存在
-- 预期: url VARCHAR(500) DEFAULT NULL
SHOW COLUMNS FROM cms_navigation LIKE 'url';
