-- 频道管理员表
-- 在 MySQL 中执行

-- 1. 创建频道管理员表
CREATE TABLE IF NOT EXISTS community_channel_admins (
    id INT AUTO_INCREMENT PRIMARY KEY,
    channel_id VARCHAR(50) NOT NULL,
    user_id INT NOT NULL,
    role ENUM('owner', 'admin', 'moderator') NOT NULL DEFAULT 'moderator',
    -- owner: 频道创建者，拥有最高权限
    -- admin: 频道管理员，可以管理消息和成员
    -- moderator: 版主，可以删除消息
    permissions JSON,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY uk_channel_user (channel_id, user_id),
    INDEX idx_channel_id (channel_id),
    INDEX idx_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 2. 权限说明
-- owner 权限（频道创建者）:
--   - delete_channel: 删除频道
--   - edit_channel: 编辑频道信息
--   - manage_admins: 管理频道管理员
--   - pin_messages: 置顶消息
--   - delete_messages: 删除任何消息
--   - slow_mode: 设置慢速模式
--   - lock_channel: 锁定频道

-- admin 权限:
--   - edit_channel: 编辑频道信息（部分）
--   - pin_messages: 置顶消息
--   - delete_messages: 删除消息
--   - slow_mode: 设置慢速模式

-- moderator 权限:
--   - pin_messages: 置顶消息
--   - delete_messages: 删除消息

-- 3. 超级管理员说明
-- community_admins 表中 role='admin' 的用户（如 user_id=65）
-- 自动拥有所有频道的最高权限，不需要在此表中添加记录

-- 查看频道管理员
-- SELECT cca.*, u.username, c.name as channel_name
-- FROM community_channel_admins cca
-- LEFT JOIN users u ON cca.user_id = u.id
-- LEFT JOIN community_channels c ON cca.channel_id = c.id;
