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

import com.yonge.cooleshow.biz.dal.valid.AddGroup;
import com.yonge.cooleshow.biz.dal.valid.UpdateGroup;
import com.yonge.cooleshow.common.entity.BaseEntity;
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 org.apache.commons.lang3.builder.ToStringBuilder;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 视频课明细表
 * @author yzp
 * @date 2022-03-25 23:46:28
 * @version v1.0
 **/
@ApiModel(value = "video_lesson_group_detail-视频课明细表")
public class 	VideoLessonGroupDetail extends BaseEntity {

    @TableId(value = "id_", type = IdType.AUTO)
    @ApiModelProperty(value = "主键id")
    private Long id;  //主键ID

    @TableField("video_lesson_group_id_")
    @ApiModelProperty(value = "课程组ID")
    private Long videoLessonGroupId;  //课程组ID

    @TableField("video_title_")
    @ApiModelProperty(value = "视频标题", required = true)
    @NotBlank(message = "课程标题不能为空;",groups = {AddGroup.class,UpdateGroup.class})
    private String videoTitle;  //视频标题

    @TableField("video_content_")
    @ApiModelProperty(value = "视频内容", required = true)
    @NotBlank(message = "课程内容不能为空;",groups = {AddGroup.class,UpdateGroup.class})
    private String videoContent;  //视频内容

    @TableField("video_url_")
    @ApiModelProperty(value = "视频文件URL", required = true)
    @NotBlank(message = "课程视频URL不能为空;",groups = {AddGroup.class,UpdateGroup.class})
    private String videoUrl;  //视频文件URL

    @TableField("cover_url_")
    @ApiModelProperty(value = "视频封面图片URL")
    private String coverUrl;  //视频封面图片URL

    @TableField("charge_flag_")
    @ApiModelProperty(value = "是否收费(1:收费;0:免费)")
    private Integer chargeFlag;  //是否收费(1:收费;0:免费)

    @TableField("sort_number_")
    @ApiModelProperty(value = "排序号")
    private Integer sortNumber;  //排序号

    @TableField("teacher_id_")
    @ApiModelProperty(value = "创建人(老师ID)")
    private Long teacherId;  //创建人(老师ID)

    @TableField("create_time_")
    @ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;  //创建时间

    @TableField("update_by_")
    @ApiModelProperty(value = "更新人")
    private Long updateBy;  //更新人

    @TableField("update_time_")
    @ApiModelProperty(value = "更新时间")
    private java.util.Date updateTime;  //更新时间


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

	public Long getId() {
	    return this.id;
	}

	public VideoLessonGroupDetail setVideoLessonGroupId(Long videoLessonGroupId) {
	    this.videoLessonGroupId = videoLessonGroupId;
	    return this;
	}

	public Long getVideoLessonGroupId() {
	    return this.videoLessonGroupId;
	}

	public VideoLessonGroupDetail setVideoTitle(String videoTitle) {
	    this.videoTitle = videoTitle;
	    return this;
	}

	public String getVideoTitle() {
	    return this.videoTitle;
	}

	public VideoLessonGroupDetail setVideoContent(String videoContent) {
	    this.videoContent = videoContent;
	    return this;
	}

	public String getVideoContent() {
	    return this.videoContent;
	}

	public VideoLessonGroupDetail setVideoUrl(String videoUrl) {
	    this.videoUrl = videoUrl;
	    return this;
	}

	public String getVideoUrl() {
	    return this.videoUrl;
	}

	public VideoLessonGroupDetail setCoverUrl(String coverUrl) {
	    this.coverUrl = coverUrl;
	    return this;
	}

	public String getCoverUrl() {
	    return this.coverUrl;
	}

	public VideoLessonGroupDetail setChargeFlag(Integer chargeFlag) {
	    this.chargeFlag = chargeFlag;
	    return this;
	}

	public Integer getChargeFlag() {
	    return this.chargeFlag;
	}

	public VideoLessonGroupDetail setSortNumber(Integer sortNumber) {
	    this.sortNumber = sortNumber;
	    return this;
	}

	public Integer getSortNumber() {
	    return this.sortNumber;
	}

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

	public Long getTeacherId() {
	    return this.teacherId;
	}

	public VideoLessonGroupDetail setCreateTime(java.util.Date createTime) {
	    this.createTime = createTime;
	    return this;
	}

	public java.util.Date getCreateTime() {
	    return this.createTime;
	}

	public VideoLessonGroupDetail setUpdateBy(Long updateBy) {
	    this.updateBy = updateBy;
	    return this;
	}

	public Long getUpdateBy() {
	    return this.updateBy;
	}

	public VideoLessonGroupDetail setUpdateTime(java.util.Date updateTime) {
	    this.updateTime = updateTime;
	    return this;
	}

	public java.util.Date getUpdateTime() {
	    return this.updateTime;
	}


    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

}