package com.zanxiang.game.module.base.rpc;

import com.zanxiang.game.module.base.pojo.dto.SendMsgDTO;
import com.zanxiang.game.module.base.pojo.params.SendMsgTaskParam;
import com.zanxiang.game.module.base.pojo.params.SendMsgTaskResultParam;
import com.zanxiang.game.module.base.pojo.vo.SendMsgResultVO;
import com.zanxiang.game.module.base.pojo.vo.SendMsgVO;
import com.zanxiang.game.module.base.util.PageUtil;
import com.zanxiang.module.util.pojo.ResultVO;

/**
 * @author : ZhangXianyu
 * @time : 2024-03-13 11:05:18
 * @description : 发送消息
 */
public interface ICPSendMsgRpc {

    /**
     * 根据任务id重发消息
     *
     * @param gameId
     * @param taskId
     * @return
     */
    ResultVO<Boolean> reSendMsgByTaskId(Long gameId, Long taskId);

    /**
     * 根据发送结果id重发消息
     *
     * @param resultId
     * @return
     */
    ResultVO<Boolean> reSendMsgByResultId(Long resultId);

    /**
     * 发送消息
     *
     * @param sendMsgDto
     * @return
     */
    ResultVO<Boolean> sendMsg(SendMsgDTO sendMsgDto);

    /**
     * 获取发送消息任务列表
     *
     * @param sendMsgTaskParam
     * @return
     */
    PageUtil<SendMsgVO> getSendMsgTaskList(SendMsgTaskParam sendMsgTaskParam);

    /**
     * 获取发送消息任务结果
     *
     * @param sendMsgTaskResultParam
     * @return
     */
    PageUtil<SendMsgResultVO> getSendMsgTaskResultList(SendMsgTaskResultParam sendMsgTaskResultParam);
}
