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

import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
import com.yonge.cooleshow.common.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * Description
 *
 * @author: liujunchi
 * @date: 2022-03-30
 */
@Data
@ApiModel(value = "MusicSheetVo对象", description = "音乐曲目表查询视图对象")
public class MusicSheetVo extends MusicSheet {

    @ApiModelProperty("添加人")
    private String addName;

    @ApiModelProperty("添加头像（老师头像）")
    private String addUserAvatar;

    @ApiModelProperty("标签名")
    private String musicTagNames;

    @ApiModelProperty("声部名")
    private String subjectNames;

    @ApiModelProperty("收藏 0：否，1：是")
    private YesOrNoEnum favorite = YesOrNoEnum.NO;

    @ApiModelProperty("是否购买/VIP（0：否，1：是） ")
    private YesOrNoEnum play;

    @ApiModelProperty("专辑中曲目的排序号")
    private Integer albumSortNumber;  //排序号

    @ApiModelProperty("单曲专辑数")
    private Integer albumNums;

    @ApiModelProperty("曲目来源名")
    private String  sourceName;

    @ApiModelProperty("机构专辑ID,逗号隔开")
    private String tenantAlbumId;

    @ApiModelProperty("分类")
    private String categoryName;

    @ApiModelProperty("所属人信息")
    private CbsMusicSheetWrapper.MusicSheetExtend musicSheetExtend;



    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class MusicSheetDetail extends CbsMusicSheetWrapper.MusicSheet {

        @ApiModelProperty("收费类型(FREE:免费;VIP:会员;CHARGE:单曲收费)")
        private String paymentType;

        @ApiModelProperty("是否可转谱(0:否; 1:是)")
        private Boolean isConvertibleScore;

        @ApiModelProperty("谱面类型")
        private String scoreType;

        @ApiModelProperty("是否是特殊打击乐")
        private Boolean specialPercussionFlag;


        @ApiModelProperty("是否能播放（0：否，1：是） 学生端进入小酷Ai判断 试用/完整 播放")
        private YesOrNoEnum play;

        @ApiModelProperty("是否购买（0：否，1：是）")
        private Boolean buyed = false;

        @ApiModelProperty(value = "曲谱价格")
        private java.math.BigDecimal musicPrice;  //曲谱价格

        @ApiModelProperty(value = "收藏数")
        private Integer favoriteCount;

        @ApiModelProperty("单曲专辑数")
        private Long albumNums;

        @ApiModelProperty(value = "精品标志(0:否;1:是)")
        private YesOrNoEnum exquisiteFlag;

        @ApiModelProperty(value = "曲谱声部(适用的乐器,可能是多个,用逗号分隔)")
        private String musicSubject;

        @ApiModelProperty(value = "创建人(老师或者是后台平台用户)")
        private Long userId;

        @ApiModelProperty(value = "是否收藏")
        private YesOrNoEnum favorite;

        @ApiModelProperty(value = "是否添加课件")
        private YesOrNoEnum coursewareStatus = YesOrNoEnum.NO;

        @ApiModelProperty(value = "课件编号")
        private Long coursewareId;

    }

}
