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

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zanxiang.game.module.manage.pojo.params.GameAuthRoleAddParam;
import com.zanxiang.game.module.manage.pojo.params.GameAuthRoleListParam;
import com.zanxiang.game.module.manage.pojo.params.GameAuthRoleUpdateParam;
import com.zanxiang.game.module.manage.pojo.vo.GameAuthRoleVO;
import com.zanxiang.game.module.mybatis.entity.GameAuthRole;

import java.util.Map;

/**
 * @author : lingfeng
 * @time : 2023-08-17
 * @description : 游戏授权角色
 */
public interface IGameAuthRoleService extends IService<GameAuthRole> {

    /**
     * 给游戏客服发送消息
     *
     * @param gameId   : 游戏id
     * @param gameName : 游戏名称
     * @param msg      : 消息
     */
    void dingTalkCustomer(Long gameId, String gameName, String msg);

    /**
     * 是否是客服
     *
     * @return boolean
     */
    boolean isCustomer();

    /**
     * 获取用户身份验证类型
     *
     * @param authType 身份验证类型
     * @return {@link Map}<{@link Long}, {@link String}>
     */
    Map<Long, String> getUserByAuthType(String authType);

    /**
     * 游戏身份验证角色添加
     *
     * @param param 参数
     * @return boolean
     */
    boolean gameAuthRoleAdd(GameAuthRoleAddParam param);

    /**
     * 游戏更新认证作用
     *
     * @param param 参数
     * @return boolean
     */
    boolean gameAuthRoleUpdate(GameAuthRoleUpdateParam param);

    /**
     * 删除通过id
     *
     * @param id id
     * @return boolean
     */
    boolean deleteById(Long id);

    /**
     * 列表页面
     *
     * @param param 参数
     * @return {@link IPage}<{@link GameAuthRoleVO}>
     */
    IPage<GameAuthRoleVO> listOfPage(GameAuthRoleListParam param);
}
