package com.cmvr.tts.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.cmvr.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * TTS合成任务对象 tts_synthesize_task
 *
 * @author cmvr
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("tts_synthesize_task")
@ApiModel("TTS合成任务请求对象")
public class TtsSynthesizeTask extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    @TableId(value = "id")
    private String id;

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

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

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

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

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

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

    /**
     * 语速
     */
    @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;

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

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

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

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