package com.rj.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * TTS请求日志实体类
 * 
 * @author rj
 * @date 2025-01-02
 */
@Data
@TableName("tts_request_log")
public class TtsRequestLog {
    
    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 租户ID
     */
    @TableField("tenant_id")
    private String tenantId;
    
    /**
     * 请求时间
     */
    @TableField("request_time")
    private LocalDateTime requestTime;
    
    /**
     * 模型名称
     */
    @TableField("model")
    private String model;
    
    /**
     * 输入文本
     */
    @TableField("input_text")
    private String inputText;
    
    /**
     * 输入文本长度
     */
    @TableField("input_length")
    private Integer inputLength;
    
    /**
     * 语音参数
     */
    @TableField("voice")
    private String voice;
    
    /**
     * 语速
     */
    @TableField("speed")
    private Double speed;
    
    /**
     * 音调
     */
    @TableField("pitch")
    private Double pitch;
    
    /**
     * 音量
     */
    @TableField("volume")
    private Double volume;
    
    /**
     * 输出格式
     */
    @TableField("format")
    private String format;
    
    /**
     * 采样率
     */
    @TableField("sample_rate")
    private Integer sampleRate;
    
    /**
     * 请求状态（成功/失败）
     */
    @TableField("status")
    private String status;
    
    /**
     * 音频文件大小（字节）
     */
    @TableField("audio_size_bytes")
    private Long audioSizeBytes;
    
    /**
     * 音频时长（秒）
     */
    @TableField("duration")
    private Double duration;
    
    /**
     * MinIO文件URL
     */
    @TableField("minio_url")
    private String minioUrl;
    
    /**
     * 音频文件名
     */
    @TableField("audio_name")
    private String audioName;
    
    /**
     * 短链临时访问URL
     */
    @TableField("short_url")
    private String shortUrl;
    
    /**
     * 短链过期时间
     */
    @TableField("short_url_expire_time")
    private LocalDateTime shortUrlExpireTime;
    
    /**
     * 错误信息
     */
    @TableField("error_message")
    private String errorMessage;
    
    /**
     * 错误代码
     */
    @TableField("error_code")
    private String errorCode;
    
    /**
     * 处理时间（毫秒）
     */
    @TableField("processing_time_ms")
    private Long processingTimeMs;
    
    /**
     * 创建人姓名
     */
    @TableField("creator_name")
    private String creatorName;
    
    /**
     * 创建人电话
     */
    @TableField("creator_phone")
    private String creatorPhone;
    
    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;
}
