package com.fs.fastGpt.service;

import com.fs.common.core.domain.R;
import com.fs.qw.vo.QwMessageListVO;
import com.fs.qwHookApi.vo.QwHookVO;
import com.fs.wxwork.dto.WxWorkResponseDTO;

public interface AiHookService {
    /** 发送ai提醒 **/
    void AiRemind();

    /** ai回复**/
    R qwHookNotifyAiReply(Long qwUserID, Long sender,String count,String uid,Integer type);

    /** 转人工 **/
    void artificial(QwHookVO vo);

    R qwHookNotifyAddMsg(Long qwUserID, Long sender,String count,String uid);

    void expireAiMsg();

    /**
     * 保存企微聊天信息
     *
     * @param qwUserId 企微用户ID
     * @param userId   用户ID
     * @param content  聊天内容
     * @param uuid     UUID
     * @param sendType 发送者类型 1用户 2客服
     * @param json     消息json
     * @param msgType  消息类型 1文本 2图片 3动态表情 4语音 5小程序
     */
    QwMessageListVO saveQwMsg(Long qwUserId, Long userId, String content, String uuid, int sendType, String json, int msgType);

    /**
     * 获取文件地址
     * @param uuid      uuid
     * @param fileId    fileId
     * @param aesKey    aesKey
     * @param authKey   authKey
     * @param fileName  fileName
     * @param fileSize  size
     * @param serverId  serverId
     * @return  WxWorkResponseDTO
     */
    WxWorkResponseDTO<String> getFileUrl(String uuid, String fileId, String aesKey, String authKey, String fileName, Integer fileSize, Long serverId);

    /**
     * 获取文件地址
     * @param uuid      uuid
     * @param fileId    fileId
     * @param aesKey    aesKey
     * @param fileType  fileType
     * @param fileName  fileName
     * @param fileSize  fileSize
     * @param serverId  serverId
     * @return  WxWorkResponseDTO
     */
    WxWorkResponseDTO<String> getFileUrl(String uuid, String fileId, String aesKey, Integer fileType, String fileName, Integer fileSize, Long serverId);
}
