package com.rj.service;

import com.rj.entity.TtsRequestLog;
import com.rj.utils.MinIOUrlGenerator;
import com.rj.dto.AsrRequest;
import com.rj.dto.AsrResponse;

/**
 * TTS请求日志服务接口
 * 
 * @author rj
 * @date 2025-01-02
 */
public interface ITtsRequestLogService {
    
    /**
     * 保存TTS请求日志
     * 
     * @param log 请求日志
     * @return 是否保存成功
     */
    boolean saveTtsRequestLog(TtsRequestLog log);
    
    /**
     * 根据ID查询请求日志
     * 
     * @param id 日志ID
     * @return 请求日志
     */
    TtsRequestLog getTtsRequestLogById(String id);
    
    /**
     * 根据音频名称设置短链接
     *
     * @return 是否设置成功
     */
    boolean setShortUrlByAudioName(MinIOUrlGenerator.UrlInfo urlInfo );
    
    /**
     * 根据音频名称设置短链接（使用默认15分钟过期时间）
     * 
     * @param audioName 音频名称
     * @return 是否设置成功
     */
    boolean setShortUrlByAudioName(String audioName);
    
    /**
     * 语音转文本
     * 
     * @param request ASR请求
     * @return ASR响应
     */
    AsrResponse speechToText(AsrRequest request);
    
    /**
     * 检查ASR服务是否可用
     * 
     * @return 是否可用
     */
    boolean isAsrServiceAvailable();
}
