package com.ff.game.api.xk.client;

import com.dtflys.forest.annotation.*;
import com.ff.game.api.jili.address.MyJILIAddressSource;
import com.ff.game.api.jili.dto.*;
import com.ff.game.api.xk.address.MyXKAddressSource;
import com.ff.game.api.xk.dto.*;

import java.util.Map;

/**
 * xk 请求
 *
 * @author shi
 * @date 2025/02/10
 */
@Address(source = MyXKAddressSource.class)
public interface XKClient {
    /**
     * 创建成员
     *
     * @param params 参数
     * @return {@link String }
     */
    @Post("/createMember")
    XKCreateMemberResponseDTO createMember(@JSONBody Map<String, Object> params);

    /**
     * 获取会员信息
     *
     * @param params 参数
     * @return {@link XKMemberInfoDTO }
     */
    @Post("/getMemberInfo")
    XKMemberInfoDTO getMemberInfo(@JSONBody Map<String, Object> params);

    /**
     * 无重定向登录
     *
     * @param params 参数
     * @return {@link JILILoginWithoutRedirectResponseDTO }
     */
    @Post("/loginWithoutRedirect")
    XKLoginWithoutRedirectResponseDTO loginWithoutRedirect(@JSONBody Map<String, Object> params);

    /**
     * 获取游戏列表
     *
     * @param params 参数
     * @return {@link JILIGamesDTO }
     */
    @Post("/getGameList")
    XKGamesDTO getGameList(@JSONBody Map<String, Object> params);

    /**
     * 按代理id进行交换转账
     *
     * @param params 参数
     * @return {@link JILIExchangeMoneyResponseDTO }
     */
    @Post(url = "/exchangeTransferByAgentId")
    XKExchangeMoneyResponseDTO exchangeTransferByAgentId( @JSONBody  Map<String, Object> params);

    /**
     * 按时间获取投注记录
     *
     * @param params 参数
     * @return {@link XKBetRecordResponseDTO }
     */
    @Post(url = "/getGameRecordByTime")
    XKBetRecordResponseDTO getBetRecordByTime( @JSONBody  Map<String, Object> params);


    /**
     * 踢出队员
     *
     * @param params 参数
     * @return {@link JILIKickMemberDTO }
     */
    @Post("/kickMember")
    XKKickMemberDTO kickMember(@JSONBody Map<String, Object> params);

    /**
     * 踢出所有队员
     *
     * @param params 参数
     * @return {@link JILIKickMemberAllDTO }
     */
    @Get("/kickMemberAll")
    XKKickMemberAllDTO  kickMemberAll(@JSONBody Map<String, Object> params);


}
