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

import com.alibaba.excel.annotation.ExcelProperty;
import com.yonge.cooleshow.biz.dal.convert.AudioTypeConverter;
import com.yonge.cooleshow.biz.dal.convert.YesOrNoConverter;
import com.yonge.cooleshow.biz.dal.enums.AudioTypeEnum;
import com.yonge.cooleshow.common.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * Description
 *
 * @author liujunchi
 * @date 2022-05-20
 */
@ApiModel("曲目导入格式")
public class MusicSheetExport {

    @ExcelProperty(value = "曲目名称")
    private String musicSheetName;  //曲谱名称

    @ApiModelProperty(value = "曲目音频类型 MP3：mp3, MIDI:midi,")
    @ExcelProperty(value = "播放类型",converter = AudioTypeConverter.class)
    private AudioTypeEnum audioType;

    @ApiModelProperty(value = "mp3类型 MP3：mp3, MP3_METRONOME:MP3_METRONOME,")
    @ExcelProperty(value = "是否含节拍器",converter = AudioTypeConverter.class)
    private AudioTypeEnum mp3Type;

    @ApiModelProperty(value = "XML文件存储路径")
    @ExcelProperty(value = "XML文件地址")
    private String xmlFileUrl;  //XML文件存储路径

    @ApiModelProperty(value = "midi路径")
    @ExcelProperty(value = "伴奏文件地址")
    private String midiUrl;  //XML文件存储路径

    @ApiModelProperty(value = "曲谱标签(多个标签用逗号分隔)")
    @ExcelProperty(value = "曲目标签")
    private String musicTags;  //曲谱标签(多个标签用逗号分隔)

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

    @ExcelProperty(value = "音乐人")
    private String composer;  //音乐家

    @ExcelProperty(value = "指法是否展示",converter = YesOrNoConverter.class)
    @ApiModelProperty(value = "是否展示指法(0:否;1:是)")
    private YesOrNoEnum showFingering;  //是否展示指法(0:否;1:是)

    @ExcelProperty(value = "是否评测",converter = YesOrNoConverter.class)
    @ApiModelProperty(value = "是否可以评测(0:否;1:是)")
    private YesOrNoEnum canEvaluate;  //是否可以评测(0:否;1:是)

    @ExcelProperty(value = "MP3原音")
    @ApiModelProperty(value = "MP3原声音频文件URL")
    private String audioFileUrls;  //MP3原声音频文件URL

    public String getMusicSheetName() {
        return musicSheetName;
    }

    public void setMusicSheetName(String musicSheetName) {
        this.musicSheetName = musicSheetName;
    }

    public AudioTypeEnum getAudioType() {
        return audioType;
    }

    public void setAudioType(AudioTypeEnum audioType) {
        this.audioType = audioType;
    }

    public AudioTypeEnum getMp3Type() {
        return mp3Type;
    }

    public void setMp3Type(AudioTypeEnum mp3Type) {
        this.mp3Type = mp3Type;
    }

    public String getXmlFileUrl() {
        return xmlFileUrl;
    }

    public void setXmlFileUrl(String xmlFileUrl) {
        this.xmlFileUrl = xmlFileUrl;
    }

    public String getMidiUrl() {
        return midiUrl;
    }

    public void setMidiUrl(String midiUrl) {
        this.midiUrl = midiUrl;
    }

    public String getMusicTags() {
        return musicTags;
    }

    public void setMusicTags(String musicTags) {
        this.musicTags = musicTags;
    }

    public String getMusicSubjects() {
        return musicSubjects;
    }

    public void setMusicSubjects(String musicSubjects) {
        this.musicSubjects = musicSubjects;
    }

    public String getComposer() {
        return composer;
    }

    public void setComposer(String composer) {
        this.composer = composer;
    }

    public YesOrNoEnum getShowFingering() {
        return showFingering;
    }

    public void setShowFingering(YesOrNoEnum showFingering) {
        this.showFingering = showFingering;
    }

    public YesOrNoEnum getCanEvaluate() {
        return canEvaluate;
    }

    public void setCanEvaluate(YesOrNoEnum canEvaluate) {
        this.canEvaluate = canEvaluate;
    }

    public String getAudioFileUrls() {
        return audioFileUrls;
    }

    public void setAudioFileUrls(String audioFileUrls) {
        this.audioFileUrls = audioFileUrls;
    }
}
