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.baomidou.mybatisplus.annotation.TableName;
import com.yonge.cooleshow.biz.dal.enums.course.CourseRelationTypeEnum;
import com.yonge.cooleshow.biz.dal.enums.course.CourseTypeEnum;
import com.yonge.cooleshow.biz.dal.enums.course.RelationMusicAlbumEnum;
import com.yonge.cooleshow.common.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 课程关联曲目专辑
 */
@TableName("course_relation_music_album")
@ApiModel(value = "CourseRelationMusicAlbum对象", description = "课程关联曲目专辑")
public class CourseRelationMusicAlbum implements Serializable {
	private static final long serialVersionUID = 1L;
    @ApiModelProperty("主键 ")
    @TableId(value = "id_", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("课程组id ")
	@TableField(value = "course_group_id_")
    private Long courseGroupId;
    @ApiModelProperty("课程ID ")
	@TableField(value = "course_id_")
    private Long courseId;
    @ApiModelProperty("课程类型 ")
	@TableField(value = "course_type_")
    private CourseTypeEnum courseType;
    @ApiModelProperty("关联类型, MUSIC, ALBUM ")
	@TableField(value = "relation_type_")
    private RelationMusicAlbumEnum relationType;

    @ApiModelProperty("关联类型,RECOMMEND:推荐  GIFT:赠品 ")
    @TableField(value = "use_relation_type_")
    private CourseRelationTypeEnum useRelationType;

    @ApiModelProperty("关联曲目专辑ID ")
	@TableField(value = "music_album_id_")
    private Long musicAlbumId;

    @ApiModelProperty(" 0 ：删除 1：更新 2: 新增")
    @TableField(value = "del_flag_")
    private Integer delFlog;
    @ApiModelProperty("更新用户 ")
	@TableField(value = "update_by_")
    private Long updateBy;
    @ApiModelProperty("更新时间 ")
	@TableField(value = "update_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date updateTime;
    @ApiModelProperty("创建用户 ")
	@TableField(value = "create_by_")
    private Long createBy;
    @ApiModelProperty("创建时间 ")
	@TableField(value = "create_time_")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

    public CourseRelationTypeEnum getUseRelationType() {
        return useRelationType;
    }

    public void setUseRelationType(CourseRelationTypeEnum useRelationType) {
        this.useRelationType = useRelationType;
    }

    public Integer getDelFlog() {
        return delFlog;
    }

    public void setDelFlog(Integer delFlog) {
        this.delFlog = delFlog;
    }

    public Long getId() {
        return id;
    }

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

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

    public void setCourseId(Long courseId) {
        this.courseId = courseId;
    }

    public CourseTypeEnum getCourseType() {
        return courseType;
    }

    public void setCourseType(CourseTypeEnum courseType) {
        this.courseType = courseType;
    }

    public RelationMusicAlbumEnum getRelationType() {
        return relationType;
    }

    public void setRelationType(RelationMusicAlbumEnum relationType) {
        this.relationType = relationType;
    }

    public Long getMusicAlbumId() {
        return musicAlbumId;
    }

    public void setMusicAlbumId(Long musicAlbumId) {
        this.musicAlbumId = musicAlbumId;
    }
    
	public Long getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(Long updateBy) {
        this.updateBy = updateBy;
    }
    
	public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    
	public Long getCreateBy() {
        return createBy;
    }

    public void setCreateBy(Long createBy) {
        this.createBy = createBy;
    }
    
	public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    
}