-- 培训大纲统一层级表
-- 如历史环境已存在旧版 hot_training_outline 表，请先确认是否需要备份历史数据后再执行本脚本。

DROP TABLE IF EXISTS `hot_training_outline`;

CREATE TABLE `hot_training_outline`
(
    `id`                  BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
    `company_id`          BIGINT UNSIGNED NULL COMMENT '公司ID',
    `parent_id`           BIGINT UNSIGNED NULL DEFAULT 0 COMMENT '上级大纲ID，年度为0',
    `outline_level`       TINYINT         NULL COMMENT '大纲层级：1=年度，2=月度，3=周度',
    `outline_name`        VARCHAR(200)    NULL COMMENT '大纲名称',
    `outline_file`        VARCHAR(1024)   NULL COMMENT '大纲文件，支持存储OSS ID或URL',
    `training_type`       VARCHAR(100)    NULL COMMENT '培训类型（字典值）',
    `is_enabled`          TINYINT         NULL DEFAULT 1 COMMENT '是否启用：0=禁用，1=启用',
    `sort_no`             BIGINT          NULL DEFAULT 0 COMMENT '排序号，越小越靠前',
    `remark`              VARCHAR(500)    NULL COMMENT '备注',
    `create_dept`         BIGINT          NULL COMMENT '创建部门',
    `create_by`           BIGINT          NULL COMMENT '创建者',
    `create_by_name`      VARCHAR(64)     NULL COMMENT '创建者姓名',
    `create_time`         DATETIME        NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_by`           BIGINT          NULL COMMENT '更新者',
    `update_by_name`      VARCHAR(64)     NULL COMMENT '更新者姓名',
    `update_time`         DATETIME        NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `is_deleted`          TINYINT         NULL DEFAULT 0 COMMENT '0=正常, 1=已删除',
    PRIMARY KEY (`id`),
    KEY `idx_company_id` (`company_id`),
    KEY `idx_parent_id` (`parent_id`),
    KEY `idx_level_parent` (`outline_level`, `parent_id`),
    KEY `idx_training_type` (`training_type`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_general_ci COMMENT ='培训大纲统一层级表';
