// Code generated by goctl. DO NOT EDIT.
// Source: user.proto

package infoservice

import (
	"context"

	"github.com/cherish-chat/xxim-server/common/pb"

	"github.com/zeromicro/go-zero/zrpc"
	"google.golang.org/grpc"
)

type (
	CreateRobotReq             = pb.CreateRobotReq
	CreateRobotResp            = pb.CreateRobotResp
	GetSelfUserInfoReq         = pb.GetSelfUserInfoReq
	GetSelfUserInfoResp        = pb.GetSelfUserInfoResp
	GetUserInfoReq             = pb.GetUserInfoReq
	GetUserInfoResp            = pb.GetUserInfoResp
	GetUserModelByIdReq        = pb.GetUserModelByIdReq
	GetUserModelByIdReq_Opt    = pb.GetUserModelByIdReq_Opt
	GetUserModelByIdResp       = pb.GetUserModelByIdResp
	GetUserModelByIdsReq       = pb.GetUserModelByIdsReq
	GetUserModelByIdsReq_Opt   = pb.GetUserModelByIdsReq_Opt
	GetUserModelByIdsResp      = pb.GetUserModelByIdsResp
	RefreshUserAccessTokenReq  = pb.RefreshUserAccessTokenReq
	RefreshUserAccessTokenResp = pb.RefreshUserAccessTokenResp
	ResetUserAccountMapReq     = pb.ResetUserAccountMapReq
	ResetUserAccountMapResp    = pb.ResetUserAccountMapResp
	RevokeUserAccessTokenReq   = pb.RevokeUserAccessTokenReq
	RevokeUserAccessTokenResp  = pb.RevokeUserAccessTokenResp
	UpdateUserAccountMapReq    = pb.UpdateUserAccountMapReq
	UpdateUserAccountMapResp   = pb.UpdateUserAccountMapResp
	UpdateUserCountMapReq      = pb.UpdateUserCountMapReq
	UpdateUserCountMapResp     = pb.UpdateUserCountMapResp
	UpdateUserExtraMapReq      = pb.UpdateUserExtraMapReq
	UpdateUserExtraMapResp     = pb.UpdateUserExtraMapResp
	UpdateUserProfileMapReq    = pb.UpdateUserProfileMapReq
	UpdateUserProfileMapResp   = pb.UpdateUserProfileMapResp
	UserAccessTokenReq         = pb.UserAccessTokenReq
	UserAccessTokenResp        = pb.UserAccessTokenResp
	UserAfterKeepAliveReq      = pb.UserAfterKeepAliveReq
	UserAfterKeepAliveResp     = pb.UserAfterKeepAliveResp
	UserAfterOfflineReq        = pb.UserAfterOfflineReq
	UserAfterOfflineResp       = pb.UserAfterOfflineResp
	UserAfterOnlineReq         = pb.UserAfterOnlineReq
	UserAfterOnlineResp        = pb.UserAfterOnlineResp
	UserBeforeConnectReq       = pb.UserBeforeConnectReq
	UserBeforeConnectResp      = pb.UserBeforeConnectResp
	UserBeforeRequestReq       = pb.UserBeforeRequestReq
	UserBeforeRequestResp      = pb.UserBeforeRequestResp
	UserDestroyReq             = pb.UserDestroyReq
	UserDestroyResp            = pb.UserDestroyResp
	UserRegisterReq            = pb.UserRegisterReq
	UserRegisterResp           = pb.UserRegisterResp

	InfoService interface {
		// UpdateUserProfileMap 更新用户个人信息
		UpdateUserProfileMap(ctx context.Context, in *UpdateUserProfileMapReq, opts ...grpc.CallOption) (*UpdateUserProfileMapResp, error)
		// UpdateUserExtraMap 更新用户扩展信息
		UpdateUserExtraMap(ctx context.Context, in *UpdateUserExtraMapReq, opts ...grpc.CallOption) (*UpdateUserExtraMapResp, error)
		// UpdateUserCountMap 更新用户计数信息
		UpdateUserCountMap(ctx context.Context, in *UpdateUserCountMapReq, opts ...grpc.CallOption) (*UpdateUserCountMapResp, error)
		// GetSelfUserInfo 获取自己的用户信息
		GetSelfUserInfo(ctx context.Context, in *GetSelfUserInfoReq, opts ...grpc.CallOption) (*GetSelfUserInfoResp, error)
		// GetUserInfo 获取用户信息
		GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error)
		// GetUserModelById 获取用户模型
		GetUserModelById(ctx context.Context, in *GetUserModelByIdReq, opts ...grpc.CallOption) (*GetUserModelByIdResp, error)
		// GetUserModelByIds 批量获取用户模型
		GetUserModelByIds(ctx context.Context, in *GetUserModelByIdsReq, opts ...grpc.CallOption) (*GetUserModelByIdsResp, error)
	}

	defaultInfoService struct {
		cli zrpc.Client
	}
)

func NewInfoService(cli zrpc.Client) InfoService {
	return &defaultInfoService{
		cli: cli,
	}
}

// UpdateUserProfileMap 更新用户个人信息
func (m *defaultInfoService) UpdateUserProfileMap(ctx context.Context, in *UpdateUserProfileMapReq, opts ...grpc.CallOption) (*UpdateUserProfileMapResp, error) {
	client := pb.NewInfoServiceClient(m.cli.Conn())
	return client.UpdateUserProfileMap(ctx, in, opts...)
}

// UpdateUserExtraMap 更新用户扩展信息
func (m *defaultInfoService) UpdateUserExtraMap(ctx context.Context, in *UpdateUserExtraMapReq, opts ...grpc.CallOption) (*UpdateUserExtraMapResp, error) {
	client := pb.NewInfoServiceClient(m.cli.Conn())
	return client.UpdateUserExtraMap(ctx, in, opts...)
}

// UpdateUserCountMap 更新用户计数信息
func (m *defaultInfoService) UpdateUserCountMap(ctx context.Context, in *UpdateUserCountMapReq, opts ...grpc.CallOption) (*UpdateUserCountMapResp, error) {
	client := pb.NewInfoServiceClient(m.cli.Conn())
	return client.UpdateUserCountMap(ctx, in, opts...)
}

// GetSelfUserInfo 获取自己的用户信息
func (m *defaultInfoService) GetSelfUserInfo(ctx context.Context, in *GetSelfUserInfoReq, opts ...grpc.CallOption) (*GetSelfUserInfoResp, error) {
	client := pb.NewInfoServiceClient(m.cli.Conn())
	return client.GetSelfUserInfo(ctx, in, opts...)
}

// GetUserInfo 获取用户信息
func (m *defaultInfoService) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) {
	client := pb.NewInfoServiceClient(m.cli.Conn())
	return client.GetUserInfo(ctx, in, opts...)
}

// GetUserModelById 获取用户模型
func (m *defaultInfoService) GetUserModelById(ctx context.Context, in *GetUserModelByIdReq, opts ...grpc.CallOption) (*GetUserModelByIdResp, error) {
	client := pb.NewInfoServiceClient(m.cli.Conn())
	return client.GetUserModelById(ctx, in, opts...)
}

// GetUserModelByIds 批量获取用户模型
func (m *defaultInfoService) GetUserModelByIds(ctx context.Context, in *GetUserModelByIdsReq, opts ...grpc.CallOption) (*GetUserModelByIdsResp, error) {
	client := pb.NewInfoServiceClient(m.cli.Conn())
	return client.GetUserModelByIds(ctx, in, opts...)
}
