package com.rj.service;

import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.Map;

/**
 * 文件上传服务接口
 * 
 * @author 李中华 ,spllzh
 * @since 2025-08-07
 */
public interface IFileUploadService {

    /**
     * 上传音频文件
     * @param file 音频文件
     * @param audioId 录音ID
     * @return 上传结果
     */
    Map<String, Object> uploadAudioFile(MultipartFile file, String audioId) throws IOException;

    /**
     * 上传音频文件并更新录音记录
     * @param file 音频文件
     * @param audioId 录音ID
     * @return 上传结果
     */
    Map<String, Object> uploadAudioFileAndUpdateRecord(MultipartFile file, String audioId) throws IOException;

    /**
     * 获取音频文件访问URL
     * @param audioId 录音ID
     * @return 音频文件访问URL
     */
    String getAudioFileUrl(String audioId);

    /**
     * 删除音频文件
     * @param audioId 录音ID
     * @return 删除结果
     */
    boolean deleteAudioFile(String audioId);

    /**
     * 检查音频文件是否存在
     * @param audioId 录音ID
     * @return 是否存在
     */
    boolean audioFileExists(String audioId);

    /**
     * 使用MinIO上传音频文件
     * @param file 音频文件
     * @param audioId 录音ID
     * @return 上传结果
     */
    Map<String, Object> uploadAudioFileToMinIO(MultipartFile file, String audioId) throws IOException;
}
