package com.ruoyi.llm.service;

import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.llm.domain.CmcAgent;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * 智能体Service接口
 * 
 * @author ruoyi
 * @date 2025-07-17
 */
public interface ICmcAgentService 
{
    /**
     * 查询智能体
     * 
     * @param agentId 智能体主键
     * @return 智能体
     */
    public CmcAgent selectCmcAgentByAgentId(Integer agentId);

    /**
     * 查询智能体列表
     * 
     * @param cmcAgent 智能体
     * @return 智能体集合
     */
    public List<CmcAgent> selectCmcAgentList(CmcAgent cmcAgent);

    /**
     * 获取开场白
     *
     * @param agentName 智能体名称
     * @return 结果
     */
    public String getOpening(String agentName);

    /**
     * 上传单文件
     *
     * @param file 文件
     * @return 结果
     */
    public JSONObject uploadDocument(MultipartFile file, String agentName) throws IOException;

    /**
     * 上传修改文件
     *
     * @param file 文件
     * @return 结果
     */
    public JSONObject uploadModifyFile(String topicId, MultipartFile file, String agentName) throws IOException;

    /**
     * 上传多文件
     *
     * @param fileList 文件
     * @return 结果
     */
    public String uploadDocumentList(MultipartFile[] fileList, String agentName) throws IOException;

    /**
     * 获取进度
     *
     * @return 结果
     */
    public String getProcess();

    /**
     * 新增智能体
     * 
     * @param cmcAgent 智能体
     * @return 结果
     */
    public int insertCmcAgent(CmcAgent cmcAgent);

    /**
     * 修改智能体
     * 
     * @param cmcAgent 智能体
     * @return 结果
     */
    public int updateCmcAgent(CmcAgent cmcAgent);

    /**
     * 批量删除智能体
     * 
     * @param agentIds 需要删除的智能体主键集合
     * @return 结果
     */
    public int deleteCmcAgentByAgentIds(Integer[] agentIds);

    /**
     * 删除智能体信息
     * 
     * @param agentId 智能体主键
     * @return 结果
     */
    public int deleteCmcAgentByAgentId(Integer agentId);
}
