package com.yonge.cooleshow.biz.dal.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

/**
 * 老师课程表(CourseSchedule)表实体类
 *
 * @author hgw
 * @since 2022-03-23 14:35:20
 */
@ApiModel(value = "course_schedule-老师课程表")
public class CourseSchedule implements Serializable {
    @TableId(value = "id_", type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    private Long id;

    @TableField("course_group_id_")
    @ApiModelProperty(value = "课程组id_")
    private Long courseGroupId;

    @TableField("type_")
    @ApiModelProperty(value = "类型 practice陪练课 live直播课  CourseScheduleEnum")
    private String type;

    @TableField("status_")
    @ApiModelProperty(value = "课程状态 NOT未开始 ING进行中 COMPLETE已完成 CANCEL已取消  CourseScheduleEnum")
    private String status;

    @TableField("class_num_")
    @ApiModelProperty(value = "课堂编号-第几堂课")
    private Integer classNum;

    @TableField("teacher_id_")
    @ApiModelProperty(value = "上课教师")
    private Long teacherId;

    @TableField("class_date_")
    @ApiModelProperty(value = "上课日期")
    private Date classDate;

    @TableField("start_time_")
    @ApiModelProperty(value = "上课时间")
    private Date startTime;

    @TableField("end_time_")
    @ApiModelProperty(value = "下课时间")
    private Date endTime;

    @TableField("lock_")
    @ApiModelProperty(value = "购买陪练课及创建直播课时需要锁定课时 0未锁 1锁定")
    private Integer lock;

    @TableField("lock_time_")
    @ApiModelProperty(value = "开始锁定的时间")
    private Date lockTime;

    @TableField("ex_student_num_")
    @ApiModelProperty(value = "实际上课人数")
    private Integer exStudentNum;

    @TableField("single_course_time_")
    @ApiModelProperty(value = "单课时长")
    private Integer singleCourseTime;

    @TableField("created_by_")
    @ApiModelProperty(value = "创建人")
    private Long createdBy;

    @TableField("created_time_")
    @ApiModelProperty(value = "创建时间")
    private Date createdTime;

    @TableField("updated_by_")
    @ApiModelProperty(value = "更新人")
    private Long updatedBy;

    @TableField("updated_time_")
    @ApiModelProperty(value = "更新时间")
    private Date updatedTime;

    public Integer getSingleCourseTime() {
        return singleCourseTime;
    }

    public void setSingleCourseTime(Integer singleCourseTime) {
        this.singleCourseTime = singleCourseTime;
    }

    public static CourseSchedule build() {
        return new CourseSchedule();
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public CourseSchedule id(Long id) {
        this.id = id;
        return this;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public CourseSchedule type(String type) {
        this.type = type;
        return this;
    }

    public Long getTeacherId() {
        return teacherId;
    }

    public void setTeacherId(Long teacherId) {
        this.teacherId = teacherId;
    }

    public CourseSchedule teacherId(Long teacherId) {
        this.teacherId = teacherId;
        return this;
    }

    public Date getClassDate() {
        return classDate;
    }

    public void setClassDate(Date classDate) {
        this.classDate = classDate;
    }

    public CourseSchedule classDate(Date classDate) {
        this.classDate = classDate;
        return this;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public CourseSchedule status(String status) {
        this.status = status;
        return this;
    }

    public Long getCourseGroupId() {
        return courseGroupId;
    }

    public void setCourseGroupId(Long courseGroupId) {
        this.courseGroupId = courseGroupId;
    }

    public CourseSchedule courseGroupId(Long courseGroupId) {
        this.courseGroupId = courseGroupId;
        return this;
    }

    public Integer getClassNum() {
        return classNum;
    }

    public void setClassNum(Integer classNum) {
        this.classNum = classNum;
    }

    public CourseSchedule classNum(Integer classNum) {
        this.classNum = classNum;
        return this;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public CourseSchedule startTime(Date startTime) {
        this.startTime = startTime;
        return this;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public CourseSchedule endTime(Date endTime) {
        this.endTime = endTime;
        return this;
    }

    public Integer getLock() {
        return lock;
    }

    public void setLock(Integer lock) {
        this.lock = lock;
    }

    public CourseSchedule lock(Integer lock) {
        this.lock = lock;
        return this;
    }

    public Date getLockTime() {
        return lockTime;
    }

    public void setLockTime(Date lockTime) {
        this.lockTime = lockTime;
    }

    public CourseSchedule lockTime(Date lockTime) {
        this.lockTime = lockTime;
        return this;
    }

    public Integer getExStudentNum() {
        return exStudentNum;
    }

    public void setExStudentNum(Integer exStudentNum) {
        this.exStudentNum = exStudentNum;
    }

    public CourseSchedule exStudentNum(Integer exStudentNum) {
        this.exStudentNum = exStudentNum;
        return this;
    }

    public Long getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(Long createdBy) {
        this.createdBy = createdBy;
    }

    public CourseSchedule createdBy(Long createdBy) {
        this.createdBy = createdBy;
        return this;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public CourseSchedule createdTime(Date createdTime) {
        this.createdTime = createdTime;
        return this;
    }

    public Long getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedBy(Long updatedBy) {
        this.updatedBy = updatedBy;
    }

    public CourseSchedule updatedBy(Long updatedBy) {
        this.updatedBy = updatedBy;
        return this;
    }

    public Date getUpdatedTime() {
        return updatedTime;
    }

    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    public CourseSchedule updatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
        return this;
    }

}

