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

import com.zanxiang.game.back.base.pojo.dto.TencentMiniGameOrderBackQueryRpcDTO;
import com.zanxiang.game.back.base.pojo.dto.TencentOrderDTO;
import com.zanxiang.game.back.base.pojo.dto.TencentRoleRegisterRpcDTO;
import com.zanxiang.game.back.base.pojo.dto.TencentUserDTO;
import com.zanxiang.game.back.base.pojo.vo.OrderBackQueryRpcVO;
import com.zanxiang.module.util.pojo.ResultVO;

import java.util.Map;

/**
 * 腾讯小游戏回传（文档中的方案 B）
 * 文档地址：https://docs.qq.com/doc/DRkpGUU5jSFVxQVFN
 */
public interface ITencentMiniGameBackRpc {

    /**
     * 订单回传查询-媒体SDK回传
     */
    ResultVO<OrderBackQueryRpcVO> orderBackQuery(TencentMiniGameOrderBackQueryRpcDTO dto);

    /**
     * 订单回传
     */
    ResultVO<Boolean> backOrder(TencentOrderDTO dto);

    /**
     * 订单回传-媒体SDK回传
     */
    ResultVO<Boolean> callBackOrder(TencentOrderDTO dto);

    /**
     * 用户回传
     */
    ResultVO<Boolean> backUser(TencentUserDTO dto);

    /**
     * 用户回传-媒体SDK回传
     */
    ResultVO<Boolean> callBackUser(TencentUserDTO dto);

    /**
     * 角色回传
     */
    ResultVO<Boolean> backRoleRegister(TencentRoleRegisterRpcDTO dto);

    /**
     * 角色回传-媒体SDK
     */
    ResultVO<Boolean> callBackRole(TencentRoleRegisterRpcDTO dto);

    /**
     * 根据openId匹配监测链接
     */
    ResultVO<Map<String, String>> getCallBackByOpenId(Long gameId, String wechatOpenid);
}
