ALTER TABLE t_category
    ADD COLUMN self_apply_enable bit(1) NULL DEFAULT 1 COMMENT '针对教学点，是否开启考生自主预约';

CREATE TABLE t_async_task
(
    id               bigint       NOT NULL AUTO_INCREMENT,
    create_time      bigint       NOT NULL COMMENT '创建时间',
    update_time      bigint       NOT NULL COMMENT '更新时间',
    operate_id       bigint       NOT NULL COMMENT '操作人ID',
    type             varchar(50)  NOT NULL COMMENT '任务类型',
    status           varchar(10)  NOT NULL COMMENT '执行状态任务状态，INIT：未开始，RUNNING：进行中，FINISH：已完成',
    result           varchar(10)  NULL COMMENT '执行结果，SUCCESS：成功，ERROR：失败',
    import_file_name varchar(100) NULL COMMENT '导入文件名称',
    import_file_path varchar(500) NULL COMMENT '导入文件路径',
    export_file_path varchar(500) NULL COMMENT '导出文件路径',
    summary          text         NULL COMMENT '执行摘要',
    PRIMARY KEY (id),
    INDEX IDX_01 (type),
    INDEX IDX_02 (status),
    INDEX IDX_03 (result)
) COMMENT = '异步任务表';

CREATE TABLE t_student_course
(
    id          bigint      NOT NULL AUTO_INCREMENT,
    create_time bigint      NOT NULL COMMENT '创建时间',
    update_time bigint      NOT NULL COMMENT '更新时间',
    student_id  bigint      NOT NULL COMMENT '考生ID',
    course_code varchar(20) NOT NULL COMMENT '科目代码',
    course_name varchar(50) NULL COMMENT '科目名称',
    PRIMARY KEY (id),
    UNIQUE INDEX IDX_01 (course_code, student_id),
    INDEX IDX_02 (student_id)
) COMMENT = '考生科目表';

CREATE TABLE t_time_period_exam_site
(
    id             bigint NOT NULL AUTO_INCREMENT,
    create_time    bigint NOT NULL COMMENT '创建时间',
    update_time    bigint NOT NULL COMMENT '更新时间',
    operate_id     bigint NOT NULL COMMENT '操作人',
    exam_site_id   bigint NOT NULL COMMENT '考点ID',
    time_period_id bigint NOT NULL COMMENT '预约时段ID',
    enable         bit(1) NOT NULL COMMENT '是否开启',
    PRIMARY KEY (id),
    UNIQUE INDEX IDX_01 (exam_site_id, time_period_id),
    INDEX IDX_02 (time_period_id)
) COMMENT = '考点预约时段表';

