-- 社区管理员权限设置
-- 在 MySQL 中执行

-- 1. 创建管理员表（如果不存在）
CREATE TABLE IF NOT EXISTS community_admins (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL UNIQUE,
    role ENUM('admin', 'moderator') DEFAULT 'moderator',
    permissions JSON,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 2. 添加用户 ID=65 为管理员
INSERT INTO community_admins (user_id, role, permissions)
VALUES (65, 'admin', JSON_OBJECT(
    'manage_channels', true,
    'manage_messages', true,
    'manage_users', true,
    'manage_posts', true,
    'pin_messages', true,
    'delete_messages', true,
    'announce', true,
    'ban_users', true
))
ON DUPLICATE KEY UPDATE
    role = 'admin',
    permissions = JSON_OBJECT(
        'manage_channels', true,
        'manage_messages', true,
        'manage_users', true,
        'manage_posts', true,
        'pin_messages', true,
        'delete_messages', true,
        'announce', true,
        'ban_users', true
    );

-- 3. 查看管理员列表
SELECT ca.*, u.username
FROM community_admins ca
LEFT JOIN users u ON ca.user_id = u.id;

-- 管理员权限说明：
-- admin (管理员): 拥有所有权限
--   - manage_channels: 创建/编辑/删除频道
--   - manage_messages: 编辑/删除任何消息
--   - manage_users: 踢出/禁言用户
--   - manage_posts: 编辑/删除任何帖子
--   - pin_messages: 置顶消息
--   - delete_messages: 删除消息
--   - announce: 在公告频道发布消息
--   - ban_users: 封禁用户

-- moderator (版主): 拥有部分权限
--   - pin_messages: 置顶消息
--   - delete_messages: 删除消息
--   - manage_posts: 管理帖子（锁定/置顶）
