<?php

namespace App\JsonRpc;

use Hyperf\RpcClient\AbstractServiceClient;

class UserService extends AbstractServiceClient implements UserServiceInterface
{
    /**
     * 定义对应服务提供者的服务名称
     * @var string
     */
    protected string $serviceName = 'UserService';
    /**
     * 定义对应服务提供者的服务协议
     * @var string
     */
    protected string $protocol = 'jsonrpc-http';

    /**
     * @param string $name
     * @param int $gender
     * @return mixed|string
     */
    public function createUser(array $data)
    {
        return $this->__request(__FUNCTION__, $data);
    }

    /**
     * @param int $id
     * @return array|mixed
     */
    public function getUserInfo(int $id)
    {
        return $this->__request(__FUNCTION__, compact('id'));
    }
    /**
     * @param array $data
     * @return array|mixed
     */
    public function getUserList(array $data)
    {
        return $this->__request(__FUNCTION__, $data);
    }

    /**
     * @param array $data
     * @return mixed
     */
    public function verifyUserInfo(array $data)
    {
        return $this->__request(__FUNCTION__, $data);
    }
    /**
     * @remark 创建登录日志信息
     * @param array $data
     */
    public function createUserLogin(array $data){
        return $this->__request(__FUNCTION__, $data);
    }

    /**
     * 更新用户信息
     * @param array $data
     */
    public function updateUser(array $data){
        return $this->__request(__FUNCTION__, $data);
    }

    /**
     * 更新用户
     * @param array $data
     */
    public function updateUserInfo(array $data){
        return $this->__request(__FUNCTION__, $data);
    }

    /**
     * 删除用户
     * @param int $id
     */
    public function  delUser(int $id){
        return $this->__request(__FUNCTION__, compact('id'));
    }

    /**
     * 添加角色
     * @param array $data
     * @return array
     */
    public function addRole(array $data){
        return $this->__request(__FUNCTION__, $data);
    }
    /**
     * 删除角色
     * @param array $data
     * @return array
     */
    public function delRole(array $data){
        return $this->__request(__FUNCTION__, $data);
    }
    /**
     * 更新角色
     * @param array $data
     * @return array
     */
    public function updateRole(array $data){
        return $this->__request(__FUNCTION__, $data);
    }
    /**
     * 角色列表
     * @param array $data
     * @return array
     */
    public function roleList(array $data){
        return $this->__request(__FUNCTION__, $data);
    }
    /**
     * 角色信息
     * @param array $data
     * @return array
     */
    public function roleInfo(array $data){
        return $this->__request(__FUNCTION__, $data);
    }
}