package com.ym.mec.biz.dal.dto;

import io.swagger.annotations.ApiModelProperty;

import java.io.RandomAccessFile;
import java.math.BigDecimal;
import java.util.*;

/**
 * @Author Joburgess
 * @Date 2021/6/22 0022
 */
public class SoundCompareHelper {

    @ApiModelProperty(value = "伴奏编号")
    private Integer musicScoreId;

    @ApiModelProperty(value = "小节开始时间")
    private double measureStartTime;

    @ApiModelProperty
    private RandomAccessFile accessFile;

    @ApiModelProperty(value = "小节xml信息字典")
    private Map<Integer, List<MusicPitchDetailDto>> measureXmlInfoMap = new HashMap<>();

    @ApiModelProperty(value = "小节结束时间字典")
    private Map<Integer, Integer> measureEndTime = new HashMap<>();

    @ApiModelProperty(value = "录音音频信息")
    private List<MusicPitchDetailDto> recordMeasurePithInfo = new ArrayList<>();

    @ApiModelProperty(value = "小节分数记录")
    private Map<String, BigDecimal> userScoreMap = new HashMap<>();

    private Map<Integer, Map<String, BigDecimal>> userMeasureScoreMap = new HashMap<>();

    @ApiModelProperty(value = "偏移时间量，解决客户端录音播放不同步导致的声音留白")
    private int offsetTime;

    public int getOffsetTime() {
        return offsetTime;
    }

    public void setOffsetTime(int offsetTime) {
        this.offsetTime = offsetTime;
    }

    public Integer getMusicScoreId() {
        return musicScoreId;
    }

    public void setMusicScoreId(Integer musicScoreId) {
        this.musicScoreId = musicScoreId;
    }

    public RandomAccessFile getAccessFile() {
        return accessFile;
    }

    public void setAccessFile(RandomAccessFile accessFile) {
        this.accessFile = accessFile;
    }

    public double getMeasureStartTime() {
        return measureStartTime;
    }

    public void setMeasureStartTime(double measureStartTime) {
        this.measureStartTime = measureStartTime;
    }

    public Map<Integer, List<MusicPitchDetailDto>> getMeasureXmlInfoMap() {
        return measureXmlInfoMap;
    }

    public void setMeasureXmlInfoMap(Map<Integer, List<MusicPitchDetailDto>> measureXmlInfoMap) {
        this.measureXmlInfoMap = measureXmlInfoMap;
    }

    public Map<Integer, Integer> getMeasureEndTime() {
        return measureEndTime;
    }

    public void setMeasureEndTime(Map<Integer, Integer> measureEndTime) {
        this.measureEndTime = measureEndTime;
    }

    public List<MusicPitchDetailDto> getRecordMeasurePithInfo() {
        return recordMeasurePithInfo;
    }

    public void setRecordMeasurePithInfo(List<MusicPitchDetailDto> recordMeasurePithInfo) {
        this.recordMeasurePithInfo = recordMeasurePithInfo;
    }

    public Map<String, BigDecimal> getUserScoreMap() {
        return userScoreMap;
    }

    public void setUserScoreMap(Map<String, BigDecimal> userScoreMap) {
        this.userScoreMap = userScoreMap;
    }

    public Map<Integer, Map<String, BigDecimal>> getUserMeasureScoreMap() {
        return userMeasureScoreMap;
    }

    public void setUserMeasureScoreMap(Map<Integer, Map<String, BigDecimal>> userMeasureScoreMap) {
        this.userMeasureScoreMap = userMeasureScoreMap;
    }
}
