-- 渠道扁平化：将子渠道用户归并到顶级渠道，删除子渠道，更新表注释
-- 执行前请备份数据库

-- 1. 表及字段注释改为「渠道」
ALTER TABLE `sa_system_dept` COMMENT = '渠道表';
ALTER TABLE `sa_system_dept`
    MODIFY COLUMN `parent_id` bigint(20) UNSIGNED NULL DEFAULT 0 COMMENT '父级ID（扁平渠道固定为0）',
    MODIFY COLUMN `name` varchar(64) NOT NULL COMMENT '渠道名称',
    MODIFY COLUMN `code` varchar(64) NULL DEFAULT NULL COMMENT '渠道编码',
    MODIFY COLUMN `leader_id` bigint(20) UNSIGNED NULL DEFAULT NULL COMMENT '渠道负责人ID';

-- 2. 菜单名称（按实际 id 调整，id=5 为渠道管理菜单）
UPDATE `sa_system_menu` SET `name` = '渠道管理' WHERE `id` = 5 OR `name` LIKE '%渠道(部门)%' OR `name` = '部门管理';

-- 3. 将子渠道下的用户 dept_id 提升到顶级渠道（需配合 run_dept_flatten_channels.php 处理多级）
-- 以下为单级子渠道快速迁移（parent_id != 0 的直接挂到父级）
UPDATE `sa_system_user` u
INNER JOIN `sa_system_dept` d ON u.dept_id = d.id AND d.parent_id > 0
INNER JOIN `sa_system_dept` p ON d.parent_id = p.id
SET u.dept_id = p.id;

-- 4. 删除所有子渠道（parent_id > 0）
DELETE FROM `sa_system_dept` WHERE `parent_id` > 0;

-- 5. 剩余渠道统一为顶级
UPDATE `sa_system_dept` SET `parent_id` = 0, `level` = '0';
