-- 竞赛作品表
CREATE TABLE IF NOT EXISTS `t_biz_contest_work` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `tenant_id` BIGINT NOT NULL COMMENT '作品所属租户 ID',
    `contest_id` BIGINT NOT NULL COMMENT '赛事 ID',
    `registration_id` BIGINT NOT NULL COMMENT '报名记录 ID',
    `work_no` VARCHAR(50) DEFAULT NULL COMMENT '作品编号（展示用唯一编号）',
    `title` VARCHAR(200) NOT NULL COMMENT '作品标题',
    `description` TEXT DEFAULT NULL COMMENT '作品说明',
    `files` JSON DEFAULT NULL COMMENT '作品文件列表',
    `version` INT DEFAULT 1 COMMENT '作品版本号',
    `is_latest` TINYINT DEFAULT 1 COMMENT '是否最新版本',
    `status` VARCHAR(50) DEFAULT 'submitted' COMMENT '作品状态：submitted/locked/reviewing/rejected/accepted',
    `submit_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '提交时间',
    `submitter_user_id` BIGINT DEFAULT NULL COMMENT '提交人用户 ID',
    `submitter_account_no` VARCHAR(50) DEFAULT NULL COMMENT '提交人账号',
    `submit_source` VARCHAR(50) DEFAULT 'teacher' COMMENT '提交来源：teacher/student/team_leader',
    `preview_url` TEXT DEFAULT NULL COMMENT '作品预览 URL',
    `preview_urls` JSON DEFAULT NULL COMMENT '作品预览图 URL 列表',
    `ai_model_meta` JSON DEFAULT NULL COMMENT 'AI 建模元数据',
    `user_work_id` BIGINT DEFAULT NULL COMMENT '关联用户作品库 ID',
    -- 赛果相关字段
    `final_score` DECIMAL(10,2) DEFAULT NULL COMMENT '最终得分',
    `rank` INT DEFAULT NULL COMMENT '排名',
    `award_level` VARCHAR(50) DEFAULT NULL COMMENT '奖项等级：first/second/third/excellent/none',
    `award_name` VARCHAR(100) DEFAULT NULL COMMENT '奖项名称',
    `certificate_url` VARCHAR(500) DEFAULT NULL COMMENT '证书 URL',
    `create_by` VARCHAR(50) DEFAULT NULL COMMENT '创建人',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_by` VARCHAR(50) DEFAULT NULL COMMENT '更新人',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除标识（0-未删除，1-已删除）',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_work_no` (`work_no`),
    KEY `idx_tenant_id` (`tenant_id`),
    KEY `idx_contest_id` (`contest_id`),
    KEY `idx_registration_id` (`registration_id`),
    KEY `idx_status` (`status`),
    KEY `idx_is_latest` (`is_latest`),
    KEY `idx_submit_time` (`submit_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='竞赛作品表';

-- 竞赛作品附件表
CREATE TABLE IF NOT EXISTS `t_biz_contest_work_attachment` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `work_id` BIGINT NOT NULL COMMENT '作品 ID',
    `name` VARCHAR(100) NOT NULL COMMENT '附件名称',
    `url` VARCHAR(500) NOT NULL COMMENT '附件 URL',
    `type` VARCHAR(50) DEFAULT NULL COMMENT '附件类型',
    `size` BIGINT DEFAULT NULL COMMENT '文件大小（字节）',
    `sort` INT DEFAULT 0 COMMENT '排序',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除标识',
    PRIMARY KEY (`id`),
    KEY `idx_work_id` (`work_id`),
    KEY `idx_sort` (`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='竞赛作品附件表';

-- 竞赛评委表
CREATE TABLE IF NOT EXISTS `t_biz_contest_judge` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `contest_id` BIGINT NOT NULL COMMENT '赛事 ID',
    `tenant_id` BIGINT NOT NULL COMMENT '租户 ID',
    `judge_id` BIGINT NOT NULL COMMENT '评委用户 ID',
    `judge_name` VARCHAR(100) NOT NULL COMMENT '评委姓名',
    `title` VARCHAR(50) DEFAULT NULL COMMENT '职称',
    `organization` VARCHAR(200) DEFAULT NULL COMMENT '所属单位',
    `phone` VARCHAR(50) DEFAULT NULL COMMENT '联系电话',
    `email` VARCHAR(100) DEFAULT NULL COMMENT '邮箱',
    `specialty` VARCHAR(200) DEFAULT NULL COMMENT '专业领域',
    `status` VARCHAR(50) DEFAULT 'active' COMMENT '状态：active/inactive',
    `create_by` VARCHAR(50) DEFAULT NULL COMMENT '创建人',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_by` VARCHAR(50) DEFAULT NULL COMMENT '更新人',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除标识',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_contest_judge` (`contest_id`, `judge_id`),
    KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='竞赛评委表';

-- 评审规则表
CREATE TABLE IF NOT EXISTS `t_biz_contest_review_rule` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `contest_id` BIGINT DEFAULT NULL COMMENT '竞赛 ID（为空表示默认规则）',
    `tenant_id` BIGINT NOT NULL COMMENT '租户 ID',
    `rule_name` VARCHAR(100) NOT NULL COMMENT '规则名称',
    `rule_type` VARCHAR(50) DEFAULT 'custom' COMMENT '规则类型：default/custom',
    `total_score` DECIMAL(10,2) DEFAULT 100 COMMENT '总分',
    `pass_score` DECIMAL(10,2) DEFAULT 60 COMMENT '及格分',
    `description` VARCHAR(500) DEFAULT NULL COMMENT '规则描述',
    `create_by` VARCHAR(50) DEFAULT NULL COMMENT '创建人',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_by` VARCHAR(50) DEFAULT NULL COMMENT '更新人',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除标识',
    PRIMARY KEY (`id`),
    KEY `idx_contest_id` (`contest_id`),
    KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评审规则表';

-- 评审维度表
CREATE TABLE IF NOT EXISTS `t_biz_contest_review_dimension` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `rule_id` BIGINT NOT NULL COMMENT '评审规则 ID',
    `dimension_name` VARCHAR(100) NOT NULL COMMENT '维度名称',
    `dimension_code` VARCHAR(50) NOT NULL COMMENT '维度编码',
    `weight` DECIMAL(5,2) DEFAULT NULL COMMENT '权重（百分比）',
    `max_score` DECIMAL(10,2) NOT NULL COMMENT '满分',
    `description` VARCHAR(500) DEFAULT NULL COMMENT '维度说明',
    `sort` 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_rule_id` (`rule_id`),
    KEY `idx_sort` (`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评审维度表';
