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

import com.baomidou.mybatisplus.extension.service.IService;
import com.zanxiang.game.module.mybatis.entity.GameUserRole;
import com.zanxiang.game.module.mybatis.entity.User;
import com.zanxiang.game.module.sdk.pojo.param.GameRoleActiveCallParam;
import com.zanxiang.game.module.sdk.pojo.param.GameUserRoleSubmitParam;
import com.zanxiang.game.module.sdk.pojo.param.GameUserRoleUpdateParam;
import com.zanxiang.game.module.sdk.pojo.param.UserData;


public interface IGameUserRoleService extends IService<GameUserRole> {

    /**
     * CP 服务端玩家角色提交
     *
     * @param param : 提交参数
     */
    Boolean updateUserGameRole(GameUserRoleSubmitParam param);

    /**
     * 更新用户游戏角色
     *
     * @param param    参数
     * @param userData 用户数据
     * @return {@link Boolean}
     */
    Boolean updateUserGameRole(GameUserRoleUpdateParam param, UserData userData);

    /**
     * 用户指南游戏角色检查
     *
     * @param user         用户
     * @param relationUser 用户关系
     */
    void userGuideGameRoleCheck(User user, User relationUser);

    /**
     * 游戏角色活跃上报
     *
     * @param userData 用户数据
     * @param param    参数
     * @return boolean
     */
    boolean gameRoleActiveCall(UserData userData, GameRoleActiveCallParam param);
}
