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

package usercenter

import (
	"context"

	"juwan-backend/app/users/rpc/pb"

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

type (
	AddUserFollowsReq          = pb.AddUserFollowsReq
	AddUserFollowsResp         = pb.AddUserFollowsResp
	AddUserPreferencesReq      = pb.AddUserPreferencesReq
	AddUserPreferencesResp     = pb.AddUserPreferencesResp
	AddUsersReq                = pb.AddUsersReq
	AddUsersResp               = pb.AddUsersResp
	CheckPermissionReq         = pb.CheckPermissionReq
	CheckPermissionResp        = pb.CheckPermissionResp
	DelUserFollowsReq          = pb.DelUserFollowsReq
	DelUserFollowsResp         = pb.DelUserFollowsResp
	DelUserPreferencesReq      = pb.DelUserPreferencesReq
	DelUserPreferencesResp     = pb.DelUserPreferencesResp
	DelUsersReq                = pb.DelUsersReq
	DelUsersResp               = pb.DelUsersResp
	GetUserByUsernameReq       = pb.GetUserByUsernameReq
	GetUserByUsernameResp      = pb.GetUserByUsernameResp
	GetUserFollowsByIdReq      = pb.GetUserFollowsByIdReq
	GetUserFollowsByIdResp     = pb.GetUserFollowsByIdResp
	GetUserPreferencesByIdReq  = pb.GetUserPreferencesByIdReq
	GetUserPreferencesByIdResp = pb.GetUserPreferencesByIdResp
	GetUsersByIdReq            = pb.GetUsersByIdReq
	GetUsersByIdResp           = pb.GetUsersByIdResp
	GetUsersByIdsReq           = pb.GetUsersByIdsReq
	GetUsersByIdsResp          = pb.GetUsersByIdsResp
	LoginReq                   = pb.LoginReq
	LoginResp                  = pb.LoginResp
	LogoutReq                  = pb.LogoutReq
	LogoutResp                 = pb.LogoutResp
	RegisterReq                = pb.RegisterReq
	RegisterResp               = pb.RegisterResp
	ResetPasswordReq           = pb.ResetPasswordReq
	ResetPasswordResp          = pb.ResetPasswordResp
	SearchUserFollowsReq       = pb.SearchUserFollowsReq
	SearchUserFollowsResp      = pb.SearchUserFollowsResp
	SearchUserPreferencesReq   = pb.SearchUserPreferencesReq
	SearchUserPreferencesResp  = pb.SearchUserPreferencesResp
	SearchUsersReq             = pb.SearchUsersReq
	SearchUsersResp            = pb.SearchUsersResp
	SwitchRoleReq              = pb.SwitchRoleReq
	SwitchRoleResp             = pb.SwitchRoleResp
	UpdateUserFollowsReq       = pb.UpdateUserFollowsReq
	UpdateUserFollowsResp      = pb.UpdateUserFollowsResp
	UpdateUserPreferencesReq   = pb.UpdateUserPreferencesReq
	UpdateUserPreferencesResp  = pb.UpdateUserPreferencesResp
	UpdateUsersReq             = pb.UpdateUsersReq
	UpdateUsersResp            = pb.UpdateUsersResp
	UserFollows                = pb.UserFollows
	UserPreferences            = pb.UserPreferences
	Users                      = pb.Users
	ValidateTokenReq           = pb.ValidateTokenReq
	ValidateTokenResp          = pb.ValidateTokenResp

	Usercenter interface {
		// -----------------------users-----------------------
		AddUsers(ctx context.Context, in *AddUsersReq, opts ...grpc.CallOption) (*AddUsersResp, error)
		UpdateUsers(ctx context.Context, in *UpdateUsersReq, opts ...grpc.CallOption) (*UpdateUsersResp, error)
		DelUsers(ctx context.Context, in *DelUsersReq, opts ...grpc.CallOption) (*DelUsersResp, error)
		GetUsersById(ctx context.Context, in *GetUsersByIdReq, opts ...grpc.CallOption) (*GetUsersByIdResp, error)
		GetUsersByIds(ctx context.Context, in *GetUsersByIdsReq, opts ...grpc.CallOption) (*GetUsersByIdsResp, error)
		SearchUsers(ctx context.Context, in *SearchUsersReq, opts ...grpc.CallOption) (*SearchUsersResp, error)
		GetUserByUsername(ctx context.Context, in *GetUserByUsernameReq, opts ...grpc.CallOption) (*GetUserByUsernameResp, error)
		Login(ctx context.Context, in *LoginReq, opts ...grpc.CallOption) (*LoginResp, error)
		Register(ctx context.Context, in *RegisterReq, opts ...grpc.CallOption) (*RegisterResp, error)
		ValidateToken(ctx context.Context, in *ValidateTokenReq, opts ...grpc.CallOption) (*ValidateTokenResp, error)
		CheckPermission(ctx context.Context, in *CheckPermissionReq, opts ...grpc.CallOption) (*CheckPermissionResp, error)
		Logout(ctx context.Context, in *LogoutReq, opts ...grpc.CallOption) (*LogoutResp, error)
		ResetPassword(ctx context.Context, in *ResetPasswordReq, opts ...grpc.CallOption) (*ResetPasswordResp, error)
		SwitchRole(ctx context.Context, in *SwitchRoleReq, opts ...grpc.CallOption) (*SwitchRoleResp, error)
		// -----------------------userFollows-----------------------
		AddUserFollows(ctx context.Context, in *AddUserFollowsReq, opts ...grpc.CallOption) (*AddUserFollowsResp, error)
		UpdateUserFollows(ctx context.Context, in *UpdateUserFollowsReq, opts ...grpc.CallOption) (*UpdateUserFollowsResp, error)
		DelUserFollows(ctx context.Context, in *DelUserFollowsReq, opts ...grpc.CallOption) (*DelUserFollowsResp, error)
		GetUserFollowsById(ctx context.Context, in *GetUserFollowsByIdReq, opts ...grpc.CallOption) (*GetUserFollowsByIdResp, error)
		SearchUserFollows(ctx context.Context, in *SearchUserFollowsReq, opts ...grpc.CallOption) (*SearchUserFollowsResp, error)
		// -----------------------userPreferences-----------------------
		AddUserPreferences(ctx context.Context, in *AddUserPreferencesReq, opts ...grpc.CallOption) (*AddUserPreferencesResp, error)
		UpdateUserPreferences(ctx context.Context, in *UpdateUserPreferencesReq, opts ...grpc.CallOption) (*UpdateUserPreferencesResp, error)
		DelUserPreferences(ctx context.Context, in *DelUserPreferencesReq, opts ...grpc.CallOption) (*DelUserPreferencesResp, error)
		GetUserPreferencesById(ctx context.Context, in *GetUserPreferencesByIdReq, opts ...grpc.CallOption) (*GetUserPreferencesByIdResp, error)
		SearchUserPreferences(ctx context.Context, in *SearchUserPreferencesReq, opts ...grpc.CallOption) (*SearchUserPreferencesResp, error)
	}

	defaultUsercenter struct {
		cli zrpc.Client
	}
)

func NewUsercenter(cli zrpc.Client) Usercenter {
	return &defaultUsercenter{
		cli: cli,
	}
}

// -----------------------users-----------------------
func (m *defaultUsercenter) AddUsers(ctx context.Context, in *AddUsersReq, opts ...grpc.CallOption) (*AddUsersResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.AddUsers(ctx, in, opts...)
}

func (m *defaultUsercenter) UpdateUsers(ctx context.Context, in *UpdateUsersReq, opts ...grpc.CallOption) (*UpdateUsersResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.UpdateUsers(ctx, in, opts...)
}

func (m *defaultUsercenter) DelUsers(ctx context.Context, in *DelUsersReq, opts ...grpc.CallOption) (*DelUsersResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.DelUsers(ctx, in, opts...)
}

func (m *defaultUsercenter) GetUsersById(ctx context.Context, in *GetUsersByIdReq, opts ...grpc.CallOption) (*GetUsersByIdResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.GetUsersById(ctx, in, opts...)
}

func (m *defaultUsercenter) GetUsersByIds(ctx context.Context, in *GetUsersByIdsReq, opts ...grpc.CallOption) (*GetUsersByIdsResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.GetUsersByIds(ctx, in, opts...)
}

func (m *defaultUsercenter) SearchUsers(ctx context.Context, in *SearchUsersReq, opts ...grpc.CallOption) (*SearchUsersResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.SearchUsers(ctx, in, opts...)
}

func (m *defaultUsercenter) GetUserByUsername(ctx context.Context, in *GetUserByUsernameReq, opts ...grpc.CallOption) (*GetUserByUsernameResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.GetUserByUsername(ctx, in, opts...)
}

func (m *defaultUsercenter) Login(ctx context.Context, in *LoginReq, opts ...grpc.CallOption) (*LoginResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.Login(ctx, in, opts...)
}

func (m *defaultUsercenter) Register(ctx context.Context, in *RegisterReq, opts ...grpc.CallOption) (*RegisterResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.Register(ctx, in, opts...)
}

func (m *defaultUsercenter) ValidateToken(ctx context.Context, in *ValidateTokenReq, opts ...grpc.CallOption) (*ValidateTokenResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.ValidateToken(ctx, in, opts...)
}

func (m *defaultUsercenter) CheckPermission(ctx context.Context, in *CheckPermissionReq, opts ...grpc.CallOption) (*CheckPermissionResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.CheckPermission(ctx, in, opts...)
}

func (m *defaultUsercenter) Logout(ctx context.Context, in *LogoutReq, opts ...grpc.CallOption) (*LogoutResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.Logout(ctx, in, opts...)
}

func (m *defaultUsercenter) ResetPassword(ctx context.Context, in *ResetPasswordReq, opts ...grpc.CallOption) (*ResetPasswordResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.ResetPassword(ctx, in, opts...)
}

func (m *defaultUsercenter) SwitchRole(ctx context.Context, in *SwitchRoleReq, opts ...grpc.CallOption) (*SwitchRoleResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.SwitchRole(ctx, in, opts...)
}

// -----------------------userFollows-----------------------
func (m *defaultUsercenter) AddUserFollows(ctx context.Context, in *AddUserFollowsReq, opts ...grpc.CallOption) (*AddUserFollowsResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.AddUserFollows(ctx, in, opts...)
}

func (m *defaultUsercenter) UpdateUserFollows(ctx context.Context, in *UpdateUserFollowsReq, opts ...grpc.CallOption) (*UpdateUserFollowsResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.UpdateUserFollows(ctx, in, opts...)
}

func (m *defaultUsercenter) DelUserFollows(ctx context.Context, in *DelUserFollowsReq, opts ...grpc.CallOption) (*DelUserFollowsResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.DelUserFollows(ctx, in, opts...)
}

func (m *defaultUsercenter) GetUserFollowsById(ctx context.Context, in *GetUserFollowsByIdReq, opts ...grpc.CallOption) (*GetUserFollowsByIdResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.GetUserFollowsById(ctx, in, opts...)
}

func (m *defaultUsercenter) SearchUserFollows(ctx context.Context, in *SearchUserFollowsReq, opts ...grpc.CallOption) (*SearchUserFollowsResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.SearchUserFollows(ctx, in, opts...)
}

// -----------------------userPreferences-----------------------
func (m *defaultUsercenter) AddUserPreferences(ctx context.Context, in *AddUserPreferencesReq, opts ...grpc.CallOption) (*AddUserPreferencesResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.AddUserPreferences(ctx, in, opts...)
}

func (m *defaultUsercenter) UpdateUserPreferences(ctx context.Context, in *UpdateUserPreferencesReq, opts ...grpc.CallOption) (*UpdateUserPreferencesResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.UpdateUserPreferences(ctx, in, opts...)
}

func (m *defaultUsercenter) DelUserPreferences(ctx context.Context, in *DelUserPreferencesReq, opts ...grpc.CallOption) (*DelUserPreferencesResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.DelUserPreferences(ctx, in, opts...)
}

func (m *defaultUsercenter) GetUserPreferencesById(ctx context.Context, in *GetUserPreferencesByIdReq, opts ...grpc.CallOption) (*GetUserPreferencesByIdResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.GetUserPreferencesById(ctx, in, opts...)
}

func (m *defaultUsercenter) SearchUserPreferences(ctx context.Context, in *SearchUserPreferencesReq, opts ...grpc.CallOption) (*SearchUserPreferencesResp, error) {
	client := pb.NewUsercenterClient(m.cli.Conn())
	return client.SearchUserPreferences(ctx, in, opts...)
}
