-- ============================================
-- 考核功能数据库表创建和测试数据
-- 创建时间: 2026-02-09
-- ============================================

-- 1. 创建考核记录表
CREATE TABLE IF NOT EXISTS `exam_record` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `teacher_id` BIGINT NOT NULL COMMENT '教师ID',
  `target_level` VARCHAR(20) NOT NULL COMMENT '目标等级(king/gold)',
  `total_score` INT DEFAULT 0 COMMENT '总分',
  `pass_score` INT NOT NULL COMMENT '及格分数',
  `is_passed` TINYINT DEFAULT 0 COMMENT '是否通过(0-未通过,1-通过)',
  `correct_count` INT DEFAULT 0 COMMENT '正确题数',
  `total_count` INT DEFAULT 10 COMMENT '总题数',
  `start_time` DATETIME NOT NULL COMMENT '开始时间',
  `end_time` DATETIME COMMENT '结束时间',
  `duration` INT COMMENT '用时(秒)',
  `status` VARCHAR(20) DEFAULT 'ongoing' COMMENT '状态(ongoing-进行中,completed-已完成)',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`),
  KEY `idx_teacher_id` (`teacher_id`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='考核记录表';

-- 2. 创建考核题目表
CREATE TABLE IF NOT EXISTS `exam_question` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `level` VARCHAR(20) NOT NULL COMMENT '等级(king/gold)',
  `question_type` VARCHAR(20) DEFAULT 'single' COMMENT '题目类型(single-单选,multiple-多选,judge-判断)',
  `question_content` TEXT NOT NULL COMMENT '题目内容',
  `option_a` VARCHAR(500) COMMENT '选项A',
  `option_b` VARCHAR(500) COMMENT '选项B',
  `option_c` VARCHAR(500) COMMENT '选项C',
  `option_d` VARCHAR(500) COMMENT '选项D',
  `correct_answer` VARCHAR(10) NOT NULL COMMENT '正确答案',
  `score` INT DEFAULT 10 COMMENT '分值',
  `difficulty` INT DEFAULT 1 COMMENT '难度(1-简单,2-中等,3-困难)',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` TINYINT DEFAULT 0 COMMENT '是否删除(0-否,1-是)',
  PRIMARY KEY (`id`),
  KEY `idx_level` (`level`),
  KEY `idx_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='考核题目表';

-- 3. 创建考核答题记录表
CREATE TABLE IF NOT EXISTS `exam_answer` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `exam_record_id` BIGINT NOT NULL COMMENT '考核记录ID',
  `question_id` BIGINT NOT NULL COMMENT '题目ID',
  `question_order` INT NOT NULL COMMENT '题目顺序',
  `user_answer` VARCHAR(10) COMMENT '用户答案',
  `correct_answer` VARCHAR(10) NOT NULL COMMENT '正确答案',
  `is_correct` TINYINT COMMENT '是否正确(0-错误,1-正确)',
  `score` INT DEFAULT 0 COMMENT '得分',
  `answer_time` DATETIME COMMENT '答题时间',
  PRIMARY KEY (`id`),
  KEY `idx_exam_record_id` (`exam_record_id`),
  KEY `idx_question_id` (`question_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='考核答题记录表';

-- ============================================
-- 插入测试题目数据
-- ============================================

-- 王者陪伴员考核题目(10题)
INSERT INTO `exam_question` (`level`, `question_type`, `question_content`, `option_a`, `option_b`, `option_c`, `option_d`, `correct_answer`, `score`, `difficulty`) VALUES
('king', 'single', '习正陪伴的核心服务理念是什么？', '提供高质量的学习辅导', '陪伴孩子健康成长', '帮助家长解决教育问题', '提升孩子的学习成绩', 'B', 10, 1),
('king', 'single', '陪伴员在服务过程中最重要的是？', '完成教学任务', '建立信任关系', '提高学习成绩', '遵守服务时间', 'B', 10, 1),
('king', 'single', '遇到学生情绪低落时,陪伴员应该？', '立即联系家长', '先倾听和理解', '继续上课', '结束服务', 'B', 10, 2),
('king', 'single', '陪伴员应该如何处理学生的隐私信息？', '可以和其他陪伴员分享', '严格保密', '告诉家长所有细节', '发到社交媒体', 'B', 10, 1),
('king', 'single', '服务过程中发现学生有学习困难,应该？', '批评学生不努力', '调整教学方法', '告诉家长孩子笨', '放弃这个学生', 'B', 10, 2),
('king', 'single', '陪伴员的职业道德要求不包括？', '尊重学生', '保护隐私', '收取额外费用', '及时反馈', 'C', 10, 1),
('king', 'single', '如何建立良好的师生关系？', '严格要求', '真诚关心', '物质奖励', '放任自流', 'B', 10, 2),
('king', 'single', '陪伴员应该具备的核心能力是？', '学科知识', '沟通能力', '管理能力', '以上都是', 'D', 10, 2),
('king', 'single', '服务结束后应该做什么？', '立即离开', '填写服务记录', '要求好评', '索要小费', 'B', 10, 1),
('king', 'single', '陪伴员的服务目标是？', '完成课时', '促进成长', '赚取收入', '应付家长', 'B', 10, 1);

-- 金牌陪伴员考核题目(10题)
INSERT INTO `exam_question` (`level`, `question_type`, `question_content`, `option_a`, `option_b`, `option_c`, `option_d`, `correct_answer`, `score`, `difficulty`) VALUES
('gold', 'single', '陪伴员的基本职责是什么？', '辅导作业', '陪伴成长', '监督学习', '以上都是', 'D', 10, 1),
('gold', 'single', '服务过程中应该注意什么？', '准时到达', '尊重学生', '保护隐私', '以上都是', 'D', 10, 1),
('gold', 'single', '如何与家长沟通？', '及时反馈', '真诚交流', '尊重意见', '以上都是', 'D', 10, 1),
('gold', 'single', '遇到突发情况应该？', '立即处理', '联系家长', '上报平台', '以上都是', 'D', 10, 2),
('gold', 'single', '陪伴员不应该做什么？', '私下收费', '泄露隐私', '体罚学生', '以上都是', 'D', 10, 1),
('gold', 'single', '如何提升服务质量？', '学习培训', '总结经验', '听取反馈', '以上都是', 'D', 10, 2),
('gold', 'single', '服务记录的作用是？', '记录进度', '反馈情况', '改进服务', '以上都是', 'D', 10, 1),
('gold', 'single', '陪伴员的工作态度应该是？', '认真负责', '耐心细致', '积极主动', '以上都是', 'D', 10, 1),
('gold', 'single', '如何处理服务纠纷？', '冷静沟通', '寻求帮助', '合理解决', '以上都是', 'D', 10, 2),
('gold', 'single', '陪伴员的发展方向是？', '提升能力', '积累经验', '获得认可', '以上都是', 'D', 10, 1);

-- ============================================
-- 验证数据
-- ============================================
SELECT '考核题目统计' AS '检查项';
SELECT 
    level AS '等级',
    COUNT(*) AS '题目数量'
FROM exam_question 
WHERE deleted = 0
GROUP BY level;
