package com.zanxiang.game.module.sdk.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zanxiang.game.module.mybatis.entity.GamePayWay;
import com.zanxiang.game.module.sdk.pojo.dto.GamePayWayDTO;

import java.util.List;

/**
 * @author xufeng
 * @date 2022/6/13 11:27
 */
public interface IGamePayWayService extends IService<GamePayWay> {

    /**
     * 通过主键id查询
     *
     * @param id id
     * @return {@link GamePayWayDTO}
     */
    GamePayWayDTO getById(Long id);

    /**
     * 获取游戏支付配置
     *
     * @param gameId      游戏id
     * @param payWayId    支付方式id
     * @param payDeviceId 支付设备id
     * @return {@link GamePayWayDTO}
     */
    GamePayWayDTO getGamePayWay(Long gameId, Long payWayId, Long payDeviceId);

    /**
     * 关闭订单获取支付配置,
     *
     * @param gameId      游戏id
     * @param payWayId    支付方式id
     * @param payDeviceId 支付设备id
     * @return {@link GamePayWayDTO}
     */
    GamePayWayDTO closeOrderGetGamePayWay(Long gameId, Long payWayId, Long payDeviceId);

    /**
     * 游戏id列表
     *
     * @param gameId 游戏id
     * @return {@link List}<{@link GamePayWayDTO}>
     */
    List<GamePayWayDTO> listOfGameId(Long gameId);
}
