package com.cmvr.tts.domain.vo;

import com.cmvr.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * TTS合成任务VO对象(包含关联信息)
 *
 * @author cmvr
 */
@Data
@ApiModel("TTS合成任务视图对象")
public class TtsSynthesizeTaskVo {
    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    private String id;

    /**
     * 任务编码
     */
    @Excel(name = "任务编码")
    @ApiModelProperty("任务编码")
    private String taskCode;

    /**
     * 合成文本
     */
    @Excel(name = "合成文本")
    @ApiModelProperty("合成文本")
    private String text;

    /**
     * 语种
     */
    @ApiModelProperty("语种")
    private String language;

    /**
     * 语种名称
     */
    @Excel(name = "语种")
    @ApiModelProperty("语种名称")
    private String languageName;

    /**
     * 方言
     */
    @ApiModelProperty("方言")
    private String dialect;

    /**
     * 音色
     */
    @ApiModelProperty("音色")
    private String voice;

    /**
     * 音色名称
     */
    @Excel(name = "音色")
    @ApiModelProperty("音色名称")
    private String voiceName;

    /**
     * 情绪
     */
    @ApiModelProperty("情绪")
    private String emotion;

    /**
     * 情绪名称
     */
    @Excel(name = "情绪")
    @ApiModelProperty("情绪名称")
    private String emotionName;

    /**
     * 语速
     */
    @ApiModelProperty("语速")
    private BigDecimal speed;

    /**
     * 音量
     */
    @ApiModelProperty("音量")
    private BigDecimal volume;

    /**
     * 音高
     */
    @ApiModelProperty("音高")
    private BigDecimal pitch;

    /**
     * 采样率
     */
    @ApiModelProperty("采样率")
    private String sampleRate;

    /**
     * 输出格式
     */
    @ApiModelProperty("输出格式")
    private String outputFormat;

    /**
     * 说话风格模板名称
     */
    @ApiModelProperty("说话风格模板名称")
    private String styleTemplate;

    /**
     * 任务状态(0待处理 1合成中 2成功已完成 3失败)
     */
    @ApiModelProperty("任务状态(0待处理 1合成中 2成功已完成 3失败)")
    private String status;

    /**
     * 任务状态名称
     */
    @Excel(name = "任务状态")
    @ApiModelProperty("任务状态名称")
    private String statusName;

    /**
     * 音频文件存储路径
     */
    @ApiModelProperty("音频文件存储路径")
    private String audioFilePath;

    /**
     * 音频时长(秒)
     */
    @Excel(name = "音频时长")
    @ApiModelProperty("音频时长(秒)")
    private BigDecimal audioDuration;

    /**
     * 文件大小(字节)
     */
    @Excel(name = "文件大小")
    @ApiModelProperty("文件大小(字节)")
    private Long fileSize;

    /**
     * 失败原因
     */
    @ApiModelProperty("失败原因")
    private String errorMsg;

    /**
     * 创建者
     */
    @ApiModelProperty("创建者")
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 更新者
     */
    @ApiModelProperty("更新者")
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;
}
