-- 竞赛作品评审分配表
CREATE TABLE IF NOT EXISTS `t_biz_contest_work_assignment` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `contest_id` BIGINT NOT NULL COMMENT '赛事 ID',
    `work_id` BIGINT NOT NULL COMMENT '作品 ID',
    `judge_id` BIGINT NOT NULL COMMENT '评委用户 ID',
    `judge_name` VARCHAR(100) DEFAULT NULL COMMENT '评委姓名',
    `assignment_status` VARCHAR(50) DEFAULT 'pending' COMMENT '分配状态：pending/reviewing/completed',
    `assigned_by` BIGINT DEFAULT NULL COMMENT '分配人 ID',
    `assigned_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '分配时间',
    `review_time` DATETIME DEFAULT NULL COMMENT '评审时间',
    `score` DECIMAL(10,2) DEFAULT NULL COMMENT '评分',
    `comment` TEXT DEFAULT NULL COMMENT '评语',
    `preset_comment_id` BIGINT DEFAULT NULL COMMENT '预设评语 ID',
    `custom_comment` VARCHAR(500) DEFAULT NULL COMMENT '自定义评语',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除标识',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_work_judge` (`work_id`, `judge_id`),
    KEY `idx_contest_id` (`contest_id`),
    KEY `idx_judge_id` (`judge_id`),
    KEY `idx_assignment_status` (`assignment_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='竞赛作品评审分配表';

-- 竞赛作品评分表
CREATE TABLE IF NOT EXISTS `t_biz_contest_work_score` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `contest_id` BIGINT NOT NULL COMMENT '赛事 ID',
    `work_id` BIGINT NOT NULL COMMENT '作品 ID',
    `assignment_id` BIGINT DEFAULT NULL COMMENT '评审分配 ID',
    `judge_id` BIGINT NOT NULL COMMENT '评委用户 ID',
    `judge_name` VARCHAR(100) DEFAULT NULL COMMENT '评委姓名',
    `dimension_id` BIGINT DEFAULT NULL COMMENT '评审维度 ID',
    `dimension_name` VARCHAR(100) DEFAULT NULL COMMENT '评审维度名称',
    `score` DECIMAL(10,2) NOT NULL COMMENT '得分',
    `comment` VARCHAR(500) DEFAULT NULL COMMENT '评语',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除标识',
    PRIMARY KEY (`id`),
    KEY `idx_contest_id` (`contest_id`),
    KEY `idx_work_id` (`work_id`),
    KEY `idx_judge_id` (`judge_id`),
    KEY `idx_dimension_id` (`dimension_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='竞赛作品评分表';

-- 竞赛结果表
CREATE TABLE IF NOT EXISTS `t_biz_contest_result` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `contest_id` BIGINT NOT NULL COMMENT '赛事 ID',
    `work_id` BIGINT NOT NULL COMMENT '作品 ID',
    `registration_id` BIGINT DEFAULT NULL COMMENT '报名 ID',
    `team_id` BIGINT DEFAULT NULL COMMENT '团队 ID',
    `award_level` VARCHAR(50) NOT NULL COMMENT '奖项等级：first/second/third/excellent',
    `award_name` VARCHAR(100) NOT NULL COMMENT '奖项名称',
    `rank` INT DEFAULT NULL COMMENT '排名',
    `final_score` DECIMAL(10,2) DEFAULT NULL COMMENT '最终得分',
    `certificate_url` VARCHAR(500) DEFAULT NULL COMMENT '证书 URL',
    `publish_time` DATETIME DEFAULT NULL COMMENT '发布时间',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除标识',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_contest_work` (`contest_id`, `work_id`),
    KEY `idx_award_level` (`award_level`),
    KEY `idx_rank` (`rank`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='竞赛结果表';

-- 竞赛公告表
CREATE TABLE IF NOT EXISTS `t_biz_contest_notice` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `contest_id` BIGINT NOT NULL COMMENT '赛事 ID',
    `title` VARCHAR(200) NOT NULL COMMENT '公告标题',
    `content` TEXT NOT NULL COMMENT '公告内容',
    `priority` INT DEFAULT 0 COMMENT '优先级（数字越大越优先）',
    `publish_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间',
    `create_by` VARCHAR(50) DEFAULT NULL COMMENT '创建人',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除标识',
    PRIMARY KEY (`id`),
    KEY `idx_contest_id` (`contest_id`),
    KEY `idx_priority` (`priority`),
    KEY `idx_publish_time` (`publish_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='竞赛公告表';

-- 竞赛预设评语表
CREATE TABLE IF NOT EXISTS `t_biz_contest_preset_comment` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `contest_id` BIGINT DEFAULT NULL COMMENT '赛事 ID（为空表示通用评语）',
    `tenant_id` BIGINT NOT NULL COMMENT '租户 ID',
    `content` VARCHAR(500) NOT NULL COMMENT '评语内容',
    `type` VARCHAR(50) DEFAULT 'positive' COMMENT '评语类型：positive/neutral/negative',
    `score_range_min` DECIMAL(10,2) DEFAULT NULL COMMENT '适用分数范围最小值',
    `score_range_max` DECIMAL(10,2) DEFAULT NULL COMMENT '适用分数范围最大值',
    `sort` INT DEFAULT 0 COMMENT '排序',
    `usage_count` INT DEFAULT 0 COMMENT '使用次数',
    `create_by` VARCHAR(50) DEFAULT NULL COMMENT '创建人',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除标识',
    PRIMARY KEY (`id`),
    KEY `idx_contest_id` (`contest_id`),
    KEY `idx_tenant_id` (`tenant_id`),
    KEY `idx_type` (`type`),
    KEY `idx_sort` (`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='竞赛预设评语表';
