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

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


/**
 * 用户曲目作品
 * 2023-09-05 15:27:10
 */
@Data
@ApiModel(" UserMusic-用户曲目作品")
@TableName("user_music")
public class UserMusic implements Serializable {

    @TableId(value = "id_",type = IdType.AUTO)
	    private Long id;

    @ApiModelProperty("用户ID")
	@TableField(value = "user_id_")
    private Long userId;

    @ApiModelProperty("用户类型")
	@TableField(value = "client_type_")
    private ClientEnum clientType;

    @ApiModelProperty("关联练习数据ID")
	@TableField(value = "music_practice_record_id_")
    private Long musicPracticeRecordId;

    @ApiModelProperty("曲目ID")
	@TableField(value = "music_sheet_id_")
    private Long musicSheetId;


    @ApiModelProperty("原伴奏")
    @TableField(value = "accompany_url_")
    private String accompanyUrl;

    @ApiModelProperty("草稿 作品")
	@TableField(value = "type_")
    private EUserMusicType type;

    @ApiModelProperty("封面图")
	@TableField(value = "img_")
    private String img;


    @ApiModelProperty("视频封面图")
    @TableField(value = "video_img_")
    private String videoImg;


    @ApiModelProperty("文件类型") // .mp4 视频，其他为音频
    @TableField(value = "file_type_")
    private String fileType;



    @ApiModelProperty("发布描述")
    @TableField(value = "desc_")
    private String desc;

    @ApiModelProperty("视频地址")
	@TableField(value = "video_url_")
    private String videoUrl;

    @ApiModelProperty("json配置")
	@TableField(value = "json_config_")
    private String jsonConfig;

    @ApiModelProperty("点赞数")
    @TableField(value = "like_num_")
    private Integer likeNum;

    @ApiModelProperty("删除标记")
	@TableField(value = "del_flag_")
    private Boolean delFlag;

    @ApiModelProperty("是否过期")
    @TableField(value = "expire_flag_")
    private Boolean expireFlag;

    @TableField(value = "submit_time_")
    private Date submitTime;

    @ApiModelProperty("是否能被看到评级、评分字段")
    @TableField(value = "select_flag_")
    private Boolean selectFlag;


    @TableField(value = "create_time_")
    private Date createTime;

    @TableField(value = "update_time_")
    private Date updateTime;

}
