-- Your SQL goes here

create table kecheng
(
    id             varchar   not null
        constraint kecheng_teacher_pk
            primary key,
    kecheng_name   varchar   not null,
    kecheng_status varchar   not null,
    kecheng_desc   varchar,
    start_from     timestamp not null,
    end_by         timestamp not null,
    duration       integer,
    root_id        varchar   not null
        constraint kecheng_teacher_kecheng_teacher_id_fk
            references kecheng,
    kecheng_type   varchar,
    parent_id      varchar   not null
        constraint kecheng_kecheng_id_fk
            references kecheng,
    created_by     varchar,
    created_at     timestamp
);

comment on column kecheng.duration is '课程时长（分钟）';

comment on column kecheng.kecheng_type is '未来可能用前端的在线上课功能';

comment on column kecheng.parent_id is '第一条数据的`parent_id`是自己。';

create unique index kecheng_teacher_id_uindex
    on kecheng (id);

create table kecheng_repeat
(
    id                varchar not null
        primary key,
    kecheng_id        varchar not null
        constraint kecheng_repeat_kecheng_id_fk
            references kecheng,
    start_from        timestamp,
    end_by            timestamp,
    repeat_start      timestamp,
    repeat_cycle_days integer not null,
    repeat_end        timestamp,
    repeat_status     varchar not null
);

comment on column kecheng_repeat.start_from is '课程当天开始时间';

comment on column kecheng_repeat.end_by is '课程的当天结束时间';

comment on column kecheng_repeat.repeat_start is '不需要`repeat_end`了，因为同一组`kecheng_root_id`的数据按照`repeat_start`时间排列，后一个就是前一个的end时间。';

comment on column kecheng_repeat.repeat_end is '重复课程的结束时间';

comment on column kecheng_repeat.repeat_status is 'ON_GOING / STOPPED / PENDING / ... / STATUS优先级大于`repeat_end`';

create table kecheng_users
(
    id             varchar not null
        primary key,
    user_id        varchar not null,
    kecheng_id     varchar not null
        constraint kecheng_users_kecheng_id_fk
            references kecheng,
    kecheng_status varchar not null,
    user_type      varchar not null
);

comment on column kecheng_users.user_type is '老师，学生，助教，等等';


