-- 主播认证系统数据库表
-- 请在服务器数据库中执行此脚本

-- 1. 在用户表中添加主播相关字段
-- 注意：如果字段已存在会报错，可以忽略

-- 添加主播认证状态字段
ALTER TABLE `eb_user` ADD COLUMN `is_streamer` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否是认证主播：0-否 1-是';

-- 添加主播认证时间
ALTER TABLE `eb_user` ADD COLUMN `streamer_certified_time` datetime DEFAULT NULL COMMENT '主播认证时间';

-- 添加主播等级
ALTER TABLE `eb_user` ADD COLUMN `streamer_level` int(11) NOT NULL DEFAULT 0 COMMENT '主播等级：0-普通 1-初级 2-中级 3-高级 4-金牌';

-- 添加主播简介
ALTER TABLE `eb_user` ADD COLUMN `streamer_intro` varchar(500) DEFAULT NULL COMMENT '主播简介';

-- 添加主播标签
ALTER TABLE `eb_user` ADD COLUMN `streamer_tags` varchar(200) DEFAULT NULL COMMENT '主播标签，逗号分隔';

-- 2. 主播认证申请表
CREATE TABLE IF NOT EXISTS `eb_streamer_application` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '申请ID',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `real_name` varchar(50) NOT NULL COMMENT '真实姓名',
  `id_card` varchar(20) NOT NULL COMMENT '身份证号',
  `id_card_front` varchar(500) DEFAULT NULL COMMENT '身份证正面照片',
  `id_card_back` varchar(500) DEFAULT NULL COMMENT '身份证背面照片',
  `intro` varchar(500) DEFAULT NULL COMMENT '主播简介',
  `experience` varchar(1000) DEFAULT NULL COMMENT '直播经验描述',
  `category_ids` varchar(100) DEFAULT NULL COMMENT '擅长分类ID，逗号分隔',
  `status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '状态：0-待审核 1-审核通过 2-审核拒绝',
  `reject_reason` varchar(200) DEFAULT NULL COMMENT '拒绝原因',
  `reviewer_id` int(11) DEFAULT NULL COMMENT '审核人ID',
  `review_time` datetime DEFAULT NULL COMMENT '审核时间',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_status` (`status`),
  KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='主播认证申请表';

-- 3. 主播封禁记录表
CREATE TABLE IF NOT EXISTS `eb_streamer_ban` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '记录ID',
  `user_id` int(11) NOT NULL COMMENT '主播用户ID',
  `ban_type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '封禁类型：1-临时封禁 2-永久封禁',
  `ban_reason` varchar(500) NOT NULL COMMENT '封禁原因',
  `ban_start_time` datetime NOT NULL COMMENT '封禁开始时间',
  `ban_end_time` datetime DEFAULT NULL COMMENT '封禁结束时间（永久封禁为空）',
  `operator_id` int(11) NOT NULL COMMENT '操作人ID',
  `is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否生效：0-已解除 1-生效中',
  `unban_time` datetime DEFAULT NULL COMMENT '解封时间',
  `unban_operator_id` int(11) DEFAULT NULL COMMENT '解封操作人ID',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_is_active` (`is_active`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='主播封禁记录表';
