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.entity.BaseEntity;
import com.yonge.cooleshow.common.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;

import javax.validation.constraints.NotBlank;

/**
 * 专辑表
 * @author yzp
 * @date 2022-03-25 23:46:28
 * @version v1.0
 **/
@ApiModel(value = "music_album-专辑表")
public class MusicAlbum extends BaseEntity {

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

    @TableField("album_name_")
	@NotBlank(message = "专辑名称不能为空 ")
    @ApiModelProperty(value = "专辑名称",required = true)
    private String albumName;  //专辑名称

    @TableField("album_desc_")
	@NotBlank(message = "专辑简介不能为空 ")
    @ApiModelProperty(value = "专辑简介",required = true)
    private String albumDesc;  //专辑简介

    @TableField("album_tag_")
	@NotBlank(message = "专辑标签不能为空 ")
    @ApiModelProperty(value = "专辑标签(多个标签以逗号分开)",required = true)
    private String albumTag;  //专辑标签(多个标签以逗号分开)

	@TableField("subject_id_")
	@NotBlank(message = "专辑声部不能为空 ")
	@ApiModelProperty(value = "专辑声部(多个标签以逗号分开)",required = true)
	private String subjectId;  //专辑标签(多个标签以逗号分开)

    @TableField("album_cover_url_")
	@NotBlank(message = "专辑封面图片不能为空 ")
    @ApiModelProperty(value = "专辑封面图片URL",required = true)
    private String albumCoverUrl;  //专辑封面图片URL

    @TableField("album_status_")
    @ApiModelProperty(value = "专辑状态(1:启用;0:停用)")
    private YesOrNoEnum albumStatus;  //专辑状态(1:启用;0:停用)


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

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

    @TableField("hot_flag_")
    @ApiModelProperty(value = "是否热门专辑(1:是;0:否)")
    private YesOrNoEnum hotFlag;  //是否热门专辑(1:是;0:否)

    @TableField("top_flag_")
    @ApiModelProperty(value = "是否置顶(1:是;0:否)")
    private YesOrNoEnum topFlag;  //是否置顶(1:是;0:否)

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

    @TableField("create_by_")
    @ApiModelProperty(value = "创建人")
    private Long createBy;  //创建人

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

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

	@TableField("del_flag_")
	@ApiModelProperty("假删除标识 0：未删除 1：已删除")
	private Boolean delFlag;

	@TableField("album_price_")
	@ApiModelProperty("专辑价格 ")
	private Double albumPrice;

	@TableField("payment_type_")
	@ApiModelProperty("专辑价格 ")
	private String paymentType;

	public String getSubjectId() {
		return subjectId;
	}

	public void setSubjectId(String subjectId) {
		this.subjectId = subjectId;
	}

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

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

	public MusicAlbum setAlbumName(String albumName) {
	    this.albumName = albumName;
	    return this;
	}

	public String getAlbumName() {
	    return this.albumName;
	}

	public MusicAlbum setAlbumDesc(String albumDesc) {
	    this.albumDesc = albumDesc;
	    return this;
	}

	public String getAlbumDesc() {
	    return this.albumDesc;
	}

	public MusicAlbum setAlbumTag(String albumTag) {
	    this.albumTag = albumTag;
	    return this;
	}

	public String getAlbumTag() {
	    return this.albumTag;
	}

	public MusicAlbum setAlbumCoverUrl(String albumCoverUrl) {
	    this.albumCoverUrl = albumCoverUrl;
	    return this;
	}

	public String getAlbumCoverUrl() {
	    return this.albumCoverUrl;
	}

	public MusicAlbum setAlbumStatus(YesOrNoEnum albumStatus) {
	    this.albumStatus = albumStatus;
	    return this;
	}

	public YesOrNoEnum getAlbumStatus() {
	    return this.albumStatus;
	}

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

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

	public MusicAlbum setHotFlag(YesOrNoEnum hotFlag) {
	    this.hotFlag = hotFlag;
	    return this;
	}

	public YesOrNoEnum getHotFlag() {
	    return this.hotFlag;
	}

	public MusicAlbum setTopFlag(YesOrNoEnum topFlag) {
	    this.topFlag = topFlag;
	    return this;
	}

	public YesOrNoEnum getTopFlag() {
	    return this.topFlag;
	}

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

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

	public MusicAlbum setCreateBy(Long createBy) {
	    this.createBy = createBy;
	    return this;
	}

	public Long getCreateBy() {
	    return this.createBy;
	}

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

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

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

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


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

	public Boolean getDelFlag() {
		return delFlag;
	}

	public void setDelFlag(Boolean delFlag) {
		this.delFlag = delFlag;
	}

	public YesOrNoEnum getAuditVersion() {
		return auditVersion;
	}

	public void setAuditVersion(YesOrNoEnum auditVersion) {
		this.auditVersion = auditVersion;
	}

	public Double getAlbumPrice() {
		return albumPrice;
	}

	public void setAlbumPrice(Double albumPrice) {
		this.albumPrice = albumPrice;
	}

	public String getPaymentType() {
		return paymentType;
	}

	public void setPaymentType(String paymentType) {
		this.paymentType = paymentType;
	}
}