USE teachcloud_db;

ALTER TABLE `client_upgrade`
    ADD COLUMN `tool_type` VARCHAR(45) NOT NULL COMMENT '文件类型' AFTER `platform`,
DROP PRIMARY KEY,
ADD PRIMARY KEY USING BTREE (`platform`, `tool_type`);

UPDATE `client_upgrade` SET `tool_type` = 'TEACHCLOUD_CLIENT' WHERE (`platform` = 'WINDOWS') and (`tool_type` is null or `tool_type`= '');

CREATE TABLE `t_sync_data` (
       `school_id` BIGINT(20) NOT NULL COMMENT '学校ID',
       `semester_id` BIGINT(20) NOT NULL COMMENT '学期ID',
       `exam_id` BIGINT(20) NOT NULL COMMENT '考试ID',
       `data_type` VARCHAR(45) NOT NULL COMMENT '同步数据类型（A：机构同步，B：用户同步，C：课程同步，D：考生同步，E：命题任务同步）',
       `start_time` BIGINT(20) NULL COMMENT '同步开始时间',
       `end_time` BIGINT(20) NULL COMMENT '同步结束时间',
       `last_sync_time` BIGINT(20) NULL COMMENT '最后一次同步时间',
       `status` TINYINT(1) NULL DEFAULT 0 COMMENT '状态（0：未同步/已完成，1：同步中）',
       `enable` TINYINT(1) NULL DEFAULT 1 COMMENT '启用/禁用',
       `cron` VARCHAR(45) NULL COMMENT 'cron表达式',
       `phone_number` VARCHAR(100) NULL COMMENT '手机号（多个用逗号分隔）',
       `detail` VARCHAR(200) NULL COMMENT '同步明细',
       `create_time` BIGINT(20) NULL COMMENT '创建时间',
       `update_time` BIGINT(20) NULL COMMENT '更新时间',
       PRIMARY KEY (`school_id`, `exam_id`))
    COMMENT = '数据同步设置';

CREATE TABLE `t_sync_data_log` (
      `id` BIGINT(20) NOT NULL,
      `school_id` BIGINT(20) NOT NULL COMMENT '学校ID',
      `exam_id` BIGINT(20) NOT NULL COMMENT '考试ID',
      `data_type` VARCHAR(45) NOT NULL COMMENT '同步数据类型',
      `start_time` BIGINT(20) NULL COMMENT '开始同步时间',
      `end_time` BIGINT(20) NULL COMMENT '结束同步时间',
      `count` INT NULL COMMENT '同步数量',
      `error_msg` MEDIUMTEXT NULL COMMENT '失败原因',
      PRIMARY KEY (`id`))
    COMMENT = '数据同步日志';

CREATE TABLE `t_sync_data_student`  (
        `id` bigint NOT NULL COMMENT 'id',
        `school_id` bigint NOT NULL COMMENT '学校id',
        `exam_id` bigint NOT NULL COMMENT '考试id',
        `course_code` varchar(100) NULL DEFAULT NULL COMMENT '课程编号',
        `course_name` varchar(200) NULL DEFAULT NULL COMMENT '课程名称',
        `course_college_name` varchar(200) NULL DEFAULT NULL COMMENT '课程开课学院',
        `paper_number` varchar(100) NULL DEFAULT NULL COMMENT '试卷编号',
        `student_name` varchar(50) NOT NULL COMMENT '姓名',
        `student_code` varchar(50) NOT NULL COMMENT '学号',
        `site_number` varchar(10) NULL DEFAULT NULL COMMENT '座位号',
        `student_college_name` varchar(100) NULL DEFAULT NULL COMMENT '学院',
        `major_name` varchar(100) NULL DEFAULT NULL COMMENT '专业',
        `teach_class_name` varchar(100) NULL DEFAULT NULL,
        `class_name` varchar(100) NULL DEFAULT NULL,
        `exam_start_time` bigint NULL DEFAULT NULL COMMENT '考试开始时间',
        `exam_end_time` bigint NULL DEFAULT NULL COMMENT '考试结束时间',
        `exam_place` varchar(50) NULL DEFAULT NULL COMMENT '考点',
        `exam_room` varchar(50) NULL DEFAULT NULL COMMENT '考场',
        `teacher_code` varchar(50) NULL COMMENT '命题老师工号',
        `teacher_name` varchar(50) NULL COMMENT '命题老师姓名',
        `update_status` TINYINT(1) NULL DEFAULT 0 COMMENT '是否已同步到考生表中',
        `jxb_id` VARCHAR(100) NULL COMMENT '教学班ID',
        `jxbzc` VARCHAR(2000) NULL COMMENT '教学班组成',
        `xnm` VARCHAR(45) NULL COMMENT '学年名',
        `xqm` VARCHAR(45) NULL COMMENT '学期名',
        PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据同步考生' ROW_FORMAT = Dynamic;

ALTER TABLE `basic_message`
    CHANGE COLUMN `user_id` `user_id` BIGINT NULL COMMENT '消息接收人用户' ,
    CHANGE COLUMN `mobile_number` `mobile_number` VARCHAR(11) NOT NULL COMMENT '电话号码' ;

ALTER TABLE `basic_message`
    CHANGE COLUMN `template_code` `template_code` VARCHAR(45) NULL COMMENT '消息模板代码' ;

INSERT INTO `sys_config` (`id`, `config_key`, `config_name`, `config_value`, `enable`, `sort`, `create_id`, `create_time`, `update_time`) VALUES ('50', 'sms.sync.data.code', '数据同步失败通知', 'SMS_475870952', '1', '19', '1', '1733878447209', '1733878447249');

ALTER TABLE `basic_message`
    CHANGE COLUMN `send_result` `send_result` VARCHAR(2000) CHARACTER SET 'utf8mb4' NULL DEFAULT NULL COMMENT '消息发送结果' ;

INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('3076', '数据同步参数查询', '/api/admin/set/data/sync/select', 'URL', '508', '19', 'AUTH', '1', '0', '1');
INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('3077', '数据同步参数保存', '/api/admin/set/data/sync/save', 'URL', '508', '20', 'AUTH', '1', '0', '1');
INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('3078', '机器人参数查询', '/api/admin/set/ai/robot/select', 'URL', '508', '21', 'AUTH', '1', '0', '1');
INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('3079', '机器人参数保存', '/api/admin/set/ai/robot/save', 'URL', '508', '22', 'AUTH', '1', '0', '1');
