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 com.yonge.cooleshow.common.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 课程组表(CourseGroup)表实体类
 *
 * @author hgw
 * @since 2022-03-23 14:35:19
 */

@Data
@ApiModel(value = "course_group-课程组表")
public class CourseGroup implements Serializable {
    @TableId(value = "id_", type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    private Long id;

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

    @TableField("teacher_id_")
    @ApiModelProperty(value = "授课老师")
    private Long teacherId;

    @TableField("name_")
    @ApiModelProperty(value = "课程组名称")
    private String name;

    @TableField("subject_id_")
    @ApiModelProperty(value = "声部")
    private Long subjectId;

    @TableField("single_course_minutes_")
    @ApiModelProperty(value = "单结课时长")
    private Integer singleCourseMinutes;

    @TableField("course_num_")
    @ApiModelProperty(value = "课程数")
    private Integer courseNum;

    @TableField("complete_course_num_")
    @ApiModelProperty(value = "已上完课的课程数")
    private Integer completeCourseNum;

    @TableField("course_introduce_")
    @ApiModelProperty(value = "课程介绍")
    private String courseIntroduce;

    @TableField("course_price_")
    @ApiModelProperty(value = "课程组售价")
    private BigDecimal coursePrice;

    @TableField("status_")
    @ApiModelProperty(value = "课程组状态 ING进行中 COMPLETE已完成 DISSOLVE-未成课(解散课程) CANCEL已取消-未开始报名前可取消 APPLY报名中 NOT_SALE未开售 OUT_SALE:下架")
    private String status;

    @TableField("reason_")
    @ApiModelProperty(value = "曲目停用原因")
    private String reason;

    @TableField("sales_start_date_")
    @ApiModelProperty(value = "课程组售卖开始日期")
    private Date salesStartDate;

    @TableField("sales_end_date_")
    @ApiModelProperty(value = "课程组售卖结束日期")
    private Date salesEndDate;

    @TableField("background_pic_")
    @ApiModelProperty(value = "直播背景图")
    private String backgroundPic;

    @TableField("mix_student_num_")
    @ApiModelProperty(value = "最少成课人数")
    private Integer mixStudentNum;

    @TableField("pre_student_num_")
    @ApiModelProperty(value = "预计上课人数")
    private Integer preStudentNum;

    @TableField("im_group_id_")
    @ApiModelProperty(value = "直播课成课后生成的im群id")
    private String imGroupId;

    @TableField("course_start_time_")
    @ApiModelProperty(value = "课程开始时间")
    private Date courseStartTime;

    @TableField(value = "audit_version_")
    @ApiModelProperty(value = "是否审核时可见 （0:否  1：是）")
    private YesOrNoEnum auditVersion = YesOrNoEnum.NO;

    @TableField("course_plan_")
    @ApiModelProperty(value = "课程规划")
    private String coursePlan;

    @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;

}

