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

package systemrpc

import (
	"context"

	"github.com/xh-polaris/meowchat-system-rpc/pb"

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

type (
	Admin                 = pb.Admin
	Apply                 = pb.Apply
	Community             = pb.Community
	ContainsRoleReq       = pb.ContainsRoleReq
	ContainsRoleResp      = pb.ContainsRoleResp
	CreateAdminReq        = pb.CreateAdminReq
	CreateAdminResp       = pb.CreateAdminResp
	CreateApplyReq        = pb.CreateApplyReq
	CreateApplyResp       = pb.CreateApplyResp
	CreateCommunityReq    = pb.CreateCommunityReq
	CreateCommunityResp   = pb.CreateCommunityResp
	CreateNewsReq         = pb.CreateNewsReq
	CreateNewsResp        = pb.CreateNewsResp
	CreateNoticeReq       = pb.CreateNoticeReq
	CreateNoticeResp      = pb.CreateNoticeResp
	DeleteAdminReq        = pb.DeleteAdminReq
	DeleteAdminResp       = pb.DeleteAdminResp
	DeleteCommunityReq    = pb.DeleteCommunityReq
	DeleteCommunityResp   = pb.DeleteCommunityResp
	DeleteNewsReq         = pb.DeleteNewsReq
	DeleteNewsResp        = pb.DeleteNewsResp
	DeleteNoticeReq       = pb.DeleteNoticeReq
	DeleteNoticeResp      = pb.DeleteNoticeResp
	HandleApplyReq        = pb.HandleApplyReq
	HandleApplyResp       = pb.HandleApplyResp
	ListAdminReq          = pb.ListAdminReq
	ListAdminResp         = pb.ListAdminResp
	ListApplyReq          = pb.ListApplyReq
	ListApplyResp         = pb.ListApplyResp
	ListCommunityReq      = pb.ListCommunityReq
	ListCommunityResp     = pb.ListCommunityResp
	ListNewsReq           = pb.ListNewsReq
	ListNewsResp          = pb.ListNewsResp
	ListNoticeReq         = pb.ListNoticeReq
	ListNoticeResp        = pb.ListNoticeResp
	News                  = pb.News
	Notice                = pb.Notice
	RetrieveAdminReq      = pb.RetrieveAdminReq
	RetrieveAdminResp     = pb.RetrieveAdminResp
	RetrieveCommunityReq  = pb.RetrieveCommunityReq
	RetrieveCommunityResp = pb.RetrieveCommunityResp
	RetrieveNewsReq       = pb.RetrieveNewsReq
	RetrieveNewsResp      = pb.RetrieveNewsResp
	RetrieveNoticeReq     = pb.RetrieveNoticeReq
	RetrieveNoticeResp    = pb.RetrieveNoticeResp
	RetrieveUserRoleReq   = pb.RetrieveUserRoleReq
	RetrieveUserRoleResp  = pb.RetrieveUserRoleResp
	Role                  = pb.Role
	UpdateAdminReq        = pb.UpdateAdminReq
	UpdateAdminResp       = pb.UpdateAdminResp
	UpdateCommunityReq    = pb.UpdateCommunityReq
	UpdateCommunityResp   = pb.UpdateCommunityResp
	UpdateNewsReq         = pb.UpdateNewsReq
	UpdateNewsResp        = pb.UpdateNewsResp
	UpdateNoticeReq       = pb.UpdateNoticeReq
	UpdateNoticeResp      = pb.UpdateNoticeResp
	UpdateUserRoleReq     = pb.UpdateUserRoleReq
	UpdateUserRoleResp    = pb.UpdateUserRoleResp
	ListUseridReq         = pb.ListUseridReq
	ListUseridResp        = pb.ListUseridResp

	SystemRpc interface {
		RetrieveNotice(ctx context.Context, in *RetrieveNoticeReq, opts ...grpc.CallOption) (*RetrieveNoticeResp, error)
		ListNotice(ctx context.Context, in *ListNoticeReq, opts ...grpc.CallOption) (*ListNoticeResp, error)
		CreateNotice(ctx context.Context, in *CreateNoticeReq, opts ...grpc.CallOption) (*CreateNoticeResp, error)
		UpdateNotice(ctx context.Context, in *UpdateNoticeReq, opts ...grpc.CallOption) (*UpdateNoticeResp, error)
		DeleteNotice(ctx context.Context, in *DeleteNoticeReq, opts ...grpc.CallOption) (*DeleteNoticeResp, error)
		RetrieveNews(ctx context.Context, in *RetrieveNewsReq, opts ...grpc.CallOption) (*RetrieveNewsResp, error)
		ListNews(ctx context.Context, in *ListNewsReq, opts ...grpc.CallOption) (*ListNewsResp, error)
		CreateNews(ctx context.Context, in *CreateNewsReq, opts ...grpc.CallOption) (*CreateNewsResp, error)
		UpdateNews(ctx context.Context, in *UpdateNewsReq, opts ...grpc.CallOption) (*UpdateNewsResp, error)
		DeleteNews(ctx context.Context, in *DeleteNewsReq, opts ...grpc.CallOption) (*DeleteNewsResp, error)
		RetrieveAdmin(ctx context.Context, in *RetrieveAdminReq, opts ...grpc.CallOption) (*RetrieveAdminResp, error)
		ListAdmin(ctx context.Context, in *ListAdminReq, opts ...grpc.CallOption) (*ListAdminResp, error)
		CreateAdmin(ctx context.Context, in *CreateAdminReq, opts ...grpc.CallOption) (*CreateAdminResp, error)
		UpdateAdmin(ctx context.Context, in *UpdateAdminReq, opts ...grpc.CallOption) (*UpdateAdminResp, error)
		DeleteAdmin(ctx context.Context, in *DeleteAdminReq, opts ...grpc.CallOption) (*DeleteAdminResp, error)
		HandleApply(ctx context.Context, in *HandleApplyReq, opts ...grpc.CallOption) (*HandleApplyResp, error)
		ListApply(ctx context.Context, in *ListApplyReq, opts ...grpc.CallOption) (*ListApplyResp, error)
		// 获取用户的所有角色
		RetrieveUserRole(ctx context.Context, in *RetrieveUserRoleReq, opts ...grpc.CallOption) (*RetrieveUserRoleResp, error)
		// 更新用户的角色
		UpdateUserRole(ctx context.Context, in *UpdateUserRoleReq, opts ...grpc.CallOption) (*UpdateUserRoleResp, error)
		ContainsRole(ctx context.Context, in *ContainsRoleReq, opts ...grpc.CallOption) (*ContainsRoleResp, error)
		CreateApply(ctx context.Context, in *CreateApplyReq, opts ...grpc.CallOption) (*CreateApplyResp, error)
		RetrieveCommunity(ctx context.Context, in *RetrieveCommunityReq, opts ...grpc.CallOption) (*RetrieveCommunityResp, error)
		ListCommunity(ctx context.Context, in *ListCommunityReq, opts ...grpc.CallOption) (*ListCommunityResp, error)
		CreateCommunity(ctx context.Context, in *CreateCommunityReq, opts ...grpc.CallOption) (*CreateCommunityResp, error)
		UpdateCommunity(ctx context.Context, in *UpdateCommunityReq, opts ...grpc.CallOption) (*UpdateCommunityResp, error)
		DeleteCommunity(ctx context.Context, in *DeleteCommunityReq, opts ...grpc.CallOption) (*DeleteCommunityResp, error)
		ListUseridByRole(ctx context.Context, in *ListUseridReq, opts ...grpc.CallOption) (*ListUseridResp, error)
	}

	defaultSystemRpc struct {
		cli zrpc.Client
	}
)

func NewSystemRpc(cli zrpc.Client) SystemRpc {
	return &defaultSystemRpc{
		cli: cli,
	}
}

func (m *defaultSystemRpc) RetrieveNotice(ctx context.Context, in *RetrieveNoticeReq, opts ...grpc.CallOption) (*RetrieveNoticeResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.RetrieveNotice(ctx, in, opts...)
}

func (m *defaultSystemRpc) ListNotice(ctx context.Context, in *ListNoticeReq, opts ...grpc.CallOption) (*ListNoticeResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.ListNotice(ctx, in, opts...)
}

func (m *defaultSystemRpc) CreateNotice(ctx context.Context, in *CreateNoticeReq, opts ...grpc.CallOption) (*CreateNoticeResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.CreateNotice(ctx, in, opts...)
}

func (m *defaultSystemRpc) UpdateNotice(ctx context.Context, in *UpdateNoticeReq, opts ...grpc.CallOption) (*UpdateNoticeResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.UpdateNotice(ctx, in, opts...)
}

func (m *defaultSystemRpc) DeleteNotice(ctx context.Context, in *DeleteNoticeReq, opts ...grpc.CallOption) (*DeleteNoticeResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.DeleteNotice(ctx, in, opts...)
}

func (m *defaultSystemRpc) RetrieveNews(ctx context.Context, in *RetrieveNewsReq, opts ...grpc.CallOption) (*RetrieveNewsResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.RetrieveNews(ctx, in, opts...)
}

func (m *defaultSystemRpc) ListNews(ctx context.Context, in *ListNewsReq, opts ...grpc.CallOption) (*ListNewsResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.ListNews(ctx, in, opts...)
}

func (m *defaultSystemRpc) CreateNews(ctx context.Context, in *CreateNewsReq, opts ...grpc.CallOption) (*CreateNewsResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.CreateNews(ctx, in, opts...)
}

func (m *defaultSystemRpc) UpdateNews(ctx context.Context, in *UpdateNewsReq, opts ...grpc.CallOption) (*UpdateNewsResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.UpdateNews(ctx, in, opts...)
}

func (m *defaultSystemRpc) DeleteNews(ctx context.Context, in *DeleteNewsReq, opts ...grpc.CallOption) (*DeleteNewsResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.DeleteNews(ctx, in, opts...)
}

func (m *defaultSystemRpc) RetrieveAdmin(ctx context.Context, in *RetrieveAdminReq, opts ...grpc.CallOption) (*RetrieveAdminResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.RetrieveAdmin(ctx, in, opts...)
}

func (m *defaultSystemRpc) ListAdmin(ctx context.Context, in *ListAdminReq, opts ...grpc.CallOption) (*ListAdminResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.ListAdmin(ctx, in, opts...)
}

func (m *defaultSystemRpc) CreateAdmin(ctx context.Context, in *CreateAdminReq, opts ...grpc.CallOption) (*CreateAdminResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.CreateAdmin(ctx, in, opts...)
}

func (m *defaultSystemRpc) UpdateAdmin(ctx context.Context, in *UpdateAdminReq, opts ...grpc.CallOption) (*UpdateAdminResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.UpdateAdmin(ctx, in, opts...)
}

func (m *defaultSystemRpc) DeleteAdmin(ctx context.Context, in *DeleteAdminReq, opts ...grpc.CallOption) (*DeleteAdminResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.DeleteAdmin(ctx, in, opts...)
}

func (m *defaultSystemRpc) HandleApply(ctx context.Context, in *HandleApplyReq, opts ...grpc.CallOption) (*HandleApplyResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.HandleApply(ctx, in, opts...)
}

func (m *defaultSystemRpc) ListApply(ctx context.Context, in *ListApplyReq, opts ...grpc.CallOption) (*ListApplyResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.ListApply(ctx, in, opts...)
}

// 获取用户的所有角色
func (m *defaultSystemRpc) RetrieveUserRole(ctx context.Context, in *RetrieveUserRoleReq, opts ...grpc.CallOption) (*RetrieveUserRoleResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.RetrieveUserRole(ctx, in, opts...)
}

// 更新用户的角色
func (m *defaultSystemRpc) UpdateUserRole(ctx context.Context, in *UpdateUserRoleReq, opts ...grpc.CallOption) (*UpdateUserRoleResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.UpdateUserRole(ctx, in, opts...)
}

func (m *defaultSystemRpc) ContainsRole(ctx context.Context, in *ContainsRoleReq, opts ...grpc.CallOption) (*ContainsRoleResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.ContainsRole(ctx, in, opts...)
}

func (m *defaultSystemRpc) CreateApply(ctx context.Context, in *CreateApplyReq, opts ...grpc.CallOption) (*CreateApplyResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.CreateApply(ctx, in, opts...)
}

func (m *defaultSystemRpc) RetrieveCommunity(ctx context.Context, in *RetrieveCommunityReq, opts ...grpc.CallOption) (*RetrieveCommunityResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.RetrieveCommunity(ctx, in, opts...)
}

func (m *defaultSystemRpc) ListCommunity(ctx context.Context, in *ListCommunityReq, opts ...grpc.CallOption) (*ListCommunityResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.ListCommunity(ctx, in, opts...)
}

func (m *defaultSystemRpc) CreateCommunity(ctx context.Context, in *CreateCommunityReq, opts ...grpc.CallOption) (*CreateCommunityResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.CreateCommunity(ctx, in, opts...)
}

func (m *defaultSystemRpc) UpdateCommunity(ctx context.Context, in *UpdateCommunityReq, opts ...grpc.CallOption) (*UpdateCommunityResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.UpdateCommunity(ctx, in, opts...)
}

func (m *defaultSystemRpc) DeleteCommunity(ctx context.Context, in *DeleteCommunityReq, opts ...grpc.CallOption) (*DeleteCommunityResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.DeleteCommunity(ctx, in, opts...)
}

func (m *defaultSystemRpc) ListUseridByRole(ctx context.Context, in *ListUseridReq, opts ...grpc.CallOption) (*ListUseridResp, error) {
	client := pb.NewSystemRpcClient(m.cli.Conn())
	return client.ListUseridByRole(ctx, in, opts...)
}
