diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a56f44a --- /dev/null +++ b/Makefile @@ -0,0 +1,9 @@ +kit: + go build -o ~/go/bin/protoc-gen-kit cmd/kit/main.go +ts: + go build -o ~/go/bin/protoc-gen-ts cmd/ts/main.go +all: + make kit + make ts +testts: + make ts \ No newline at end of file diff --git a/main.go b/cmd/kit/main.go similarity index 99% rename from main.go rename to cmd/kit/main.go index 765e660..a92f3c9 100644 --- a/main.go +++ b/cmd/kit/main.go @@ -5,7 +5,6 @@ import ( "google.golang.org/genproto/googleapis/api/annotations" "google.golang.org/protobuf/compiler/protogen" "google.golang.org/protobuf/types/descriptorpb" - "log" ) // go build && protoc --unknow_out=./proto --go_out=./proto/ --go-grpc_out=./proto proto/user.proto -I ./proto @@ -171,7 +170,7 @@ func (u *Kit) genDelete(serverName string, t *protogen.GeneratedFile, m *protoge func (Kit) getMethod(m *protogen.Method) (method string, path string) { if op, ok := m.Desc.Options().(*descriptorpb.MethodOptions); ok { if opts, err := proto.GetExtension(op, annotations.E_Http); err != nil { - log.Println(err) + //log.Println(err) } else { if vv, ok := opts.(*annotations.HttpRule); ok { if vvv, ok := vv.Pattern.(*annotations.HttpRule_Get); ok { diff --git a/cmd/ts/main.go b/cmd/ts/main.go new file mode 100644 index 0000000..6f9cb28 --- /dev/null +++ b/cmd/ts/main.go @@ -0,0 +1,104 @@ +package main + +import ( + "fmt" + "google.golang.org/protobuf/compiler/protogen" + "strings" +) + +func main() { + u := &Kit{ + imports: map[string]string{}, + } + protogen.Options{}.Run(u.Generate) +} + +type Kit struct { + imports map[string]string +} + +func (u *Kit) addImports(imp string) { + u.imports[imp] = imp +} +func (u *Kit) Generate(plugin *protogen.Plugin) error { + if len(plugin.Files) < 1 { + return nil + } + for _, f := range plugin.Files { + if len(f.Services) == 0 { + continue + } + fname := f.GeneratedFilenamePrefix + ".ts" + t := plugin.NewGeneratedFile(fname, f.GoImportPath) + for _, s := range f.Messages { + t.P(`export interface `, s.Desc.Name(), ` {`) + for _, vv := range s.Fields { + common := strings.TrimSpace(vv.Comments.Leading.String()) + if common != "" { + t.P(` `, common) + } + typ := []string{} + isRequired := ":" + if vv.Desc.IsMap() { + fields := vv.Desc.Message().Fields() + typ = append(typ, fmt.Sprintf(`{ [key: %s]: %s }`, getType(fields.Get(0).Kind().String()), getType(fields.Get(1).Kind().String()))) + } else if vv.Desc.Kind().String() == "message" { + //t.P(vv.Desc.Message().Fields()) + //t.P(vv.Desc.Message().Name()) + //if vv.Desc.Message().Fields().Get(0).Name() == "value" { + // isRequired = "?:" + // //typ = append(typ, getType(vv.Desc.Message().Fields().Get(0).Kind().String())) + //} else { + fullName := fmt.Sprintf("%v", vv.Desc.Message().FullName()) + if strings.HasPrefix(fullName, "google.protobuf") && strings.HasSuffix(fullName, "Value") { + isRequired = "?:" + } + typ = append(typ, getType(fmt.Sprintf("%v", vv.Desc.Message().Name()))) + //} + } else { + typ = append(typ, getType(vv.Desc.Kind().String())) + } + + //vtype := fmt.Sprintf("%v", vv.Desc.Kind()) + //if vtype == "bytes" { + // typ = append(typ, "Uint8Array") + //} else if vtype == "message" { + // if vv.Desc.IsMap() { + // typ = append(typ, fmt.Sprintf(`{ [key: %s]: %s }`, fields.Get(0).Kind().String(), fields.Get(1).Kind().String())) + // } else { + // + // } + // + // //for _,v:=range vv.Desc.Message().Fields(){ + // // + // //} + // //t.P() + // //typ = append(typ, "Uint8Array") + //} else { + // typ = append(typ, vtype) + //} + if vv.Desc.IsList() { + typ = append(typ, "[]") + } + //t.P(vv.Desc) + t.P(` `, vv.Desc.JSONName(), isRequired, ` `, strings.Join(typ, "")) + } + t.P(`}`) + t.P() + } + } + return nil +} +func getType(key string) string { + mps := map[string]string{ + "int32": "number", + "bytes": "Uint8Array", + "Int32Value": "number", + "StringValue": "string", + "bool": "boolean", + } + if v, ok := mps[key]; ok { + return v + } + return key +} diff --git a/proto/buf.gen.yaml b/proto/buf.gen.yaml index 8e9570c..7fbdde6 100644 --- a/proto/buf.gen.yaml +++ b/proto/buf.gen.yaml @@ -8,8 +8,13 @@ plugins: out: v1 opt: - paths=source_relative - - name: kit -# path: /Users/mogfee/web/protoc-gen-kit/protoc-gen-kit + # - name: kit + # path: ./main + # out: v1 + # opt: + # - paths=source_relative + - name: ts + path: ./main out: v1 opt: - paths=source_relative diff --git a/proto/main b/proto/main new file mode 100755 index 0000000..0acd3f2 Binary files /dev/null and b/proto/main differ diff --git a/proto/user.proto b/proto/user.proto index db67a9b..03daaef 100644 --- a/proto/user.proto +++ b/proto/user.proto @@ -1,32 +1,1187 @@ syntax = "proto3"; -package com.web.api.user; - -option go_package = "./;user"; - import "validate/validate.proto"; import "google/api/annotations.proto"; +import "google/protobuf/wrappers.proto"; + +package api.answer; +option go_package = "v1/;answer"; + +service Answer{ + //问题类型 + rpc listCategory(listCategoryRequest)returns(listCategoryResponse){ + option (google.api.http) = { + get: "/api/v1/answer/listCategory" + }; + } + //问题列表 + rpc listQuestionPage(listQuestionPageRequest)returns(listQuestionPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/listQuestionPage" + }; + } + //Answer of the day + rpc listAnswerOfTheDay(listAnswerOfTheDayRequest)returns(listAnswerOfTheDayResponse){ + option(google.api.http) = { + get:"/api/v1/answer/listAnswerOfTheDay" + }; + } + //个人信息card + rpc userRightInfo(userRightInfoRequest)returns(userRightInfoResponse){ + option(google.api.http) = { + get:"/api/v1/answer/userRightInfo" + }; + } + //hot/top用户 + rpc listHotTopUser(listHotTopUserRequest)returns(listHotTopUserResponse){ + option(google.api.http) = { + get:"/api/v1/answer/listHotTopUser" + }; + } + //问题搜索页面 + rpc searchQuestion(searchQuestionRequest)returns(searchQuestionResponse){ + option(google.api.http) = { + get:"/api/v1/answer/searchQuestion" + }; + } + //问题联想 + rpc listFilterQuestion(listFilterQuestionRequest)returns(listFilterQuestionResponse){ + option(google.api.http) = { + get:"/api/v1/answer/listFilterQuestion" + }; + } + //用户联想 + rpc listFilterUser(listFilterUserRequest)returns(listFilterUserResponse){ + option(google.api.http) = { + get:"/api/v1/answer/listFilterUser" + }; + } + //推荐问题 + rpc listRelatedQuestions(listRelatedQuestionsRequest)returns(listRelatedQuestionsResponse){ + option(google.api.http) = { + get:"/api/v1/answer/listRelatedQuestions" + }; + } + //问题详情页 + rpc questionDetailPage(questionDetailPageRequest)returns(questionDetailPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/questionDetailPage" + }; + } + + //用户中心 + rpc userCenterProfilePage(userCenterProfilePageRequest)returns(userCenterProfilePageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/userCenterProfilePage" + }; + } + + rpc userCenterEditPage(userCenterEditPageRequest)returns(userCenterEditPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/userCenterEditPage" + }; + } + + rpc userCenterEdit(userCenterEditRequest)returns(userCenterEditResponse){ + option(google.api.http) = { + post:"/api/v1/answer/userCenterEdit" + body:"*", + }; + } + rpc userCenterInBoxPage(userCenterInBoxPageRequest)returns(userCenterInBoxPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/userCenterInBoxPage" + }; + } + + rpc deleteInbox(deleteInboxRequest)returns(deleteInboxResponse){ + option(google.api.http) = { + post:"/api/v1/answer/deleteInbox", + body:"*", + }; + } + + rpc messageSend(messageSendRequest)returns(messageSendResponse){ + option(google.api.http) = { + post:"/api/v1/answer/messageSend", + body:"*", + }; + } + rpc messageDetailPage(messageDetailPageRequest)returns(messageDetailPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/messageDetailPage", + }; + } + + rpc userCenterPointsPage(userCenterPointsPageRequest)returns(userCenterPointsPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/userCenterPointsPage" + }; + } + + + rpc userCenterNewAnswersPage(userCenterNewAnswersPageRequest)returns(userCenterNewAnswersPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/userCenterNewAnswersPage" + }; + } + + + rpc userCenterNewCommentsPage(userCenterNewCommentsPageRequest)returns(userCenterNewCommentsPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/userCenterNewCommentsPage" + }; + } + + + rpc noticesPage(noticesPageRequest)returns(noticesPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/noticesPage" + }; + } + + rpc captcha(captchaRequest)returns(captchaResponse){ + option(google.api.http) = { + get:"/api/v1/answer/captcha" + }; + } + + + + + rpc forbiddenQuestion(forbiddenQuestionRequest)returns(forbiddenQuestionResponse){ + option(google.api.http) = { + post:"/api/v1/answer/forbiddenQuestion", + body:"*", + }; + } + + + rpc addQuestion(addQuestionRequest)returns(addQuestionResponse){ + option(google.api.http) = { + post:"/api/v1/answer/addQuestion", + body:"*", + }; + } + + rpc getEditQuestion(getEditQuestionRequest)returns(getEditQuestionResponse){ + option(google.api.http) = { + get:"/api/v1/answer/getEditQuestion", + }; + } + + rpc addAnswer(addAnswerRequest)returns(addAnswerResponse){ + option(google.api.http) = { + post:"/api/v1/answer/addAnswer", + body:"*", + }; + } + + rpc editUserLogo(editUserLogoRequest)returns(editUserLogoResponse){ + option(google.api.http) = { + post:"/api/v1/answer/editUserLogo", + body:"*", + }; + } + rpc deleteNode(deleteNodeRequest)returns(deleteNodeResponse){ + option(google.api.http) = { + post:"/api/v1/answer/deleteNode", + body:"*", + }; + } + + rpc report(reportRequest)returns(reportResponse){ + option(google.api.http) = { + post:"/api/v1/answer/report", + body:"*", + }; + } + + + rpc forwardQuestion(forwardQuestionRequest)returns(forwardQuestionResponse){ + option(google.api.http) = { + post:"/api/v1/answer/forwardQuestion", + body:"*", + }; + } -import "google/protobuf/descriptor.proto"; -service user{ - rpc list(loginRequest)returns(loginResponse){ + rpc voteNodeGood(voteNodeGoodRequest)returns(voteNodeGoodResponse){ option(google.api.http) = { - get:"/api/v1/user/list" + post:"/api/v1/answer/voteNodeGood", + body:"*", }; } rpc login(loginRequest)returns(loginResponse){ - option (google.api.http) = { - post: "/api/v1/user/login", - body:"*" + option(google.api.http) = { + post:"/api/v1/answer/login", + body:"*", + }; + } + + + rpc adminRolesPage(adminRolesPageRequest)returns(adminRolesPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/adminRolesPage", + }; + } + + rpc adminUpdateRoleAction(adminUpdateRoleActionRequest)returns(adminUpdateRoleActionResponse){ + option(google.api.http) = { + post:"/api/v1/answer/adminUpdateRoleAction", + body:"*", + }; + } + + rpc adminUserPage(adminUserPageRequest)returns(adminUserPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/adminUserPage", + }; + } + + rpc adminUpdateUserAction(adminUpdateUserActionRequest)returns(adminUpdateUserActionResponse){ + option(google.api.http) = { + post:"/api/v1/answer/adminUpdateUserAction", + body:"*", + }; + } + + + rpc adminNodePage(adminNodePageRequest)returns(adminNodePageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/adminNodePage", + }; + } + + rpc updateNode(updateNodeRequest)returns(updateNodeResponse){ + option(google.api.http) = { + post:"/api/v1/answer/updateNode", + body:"*", + }; + } + + rpc helpPage(helpPageRequest)returns(helpPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/helpPage", + }; + } + + rpc randQuestion(randQuestionRequest)returns(randQuestionResponse){ + option(google.api.http) = { + get:"/api/v1/answer/randQuestion", + }; + } + + rpc exchange(exchangeRequest)returns(exchangeResponse){ + option(google.api.http) = { + get:"/api/v1/answer/exchange", + }; + } + + rpc adminExchange(adminExchangeRequest)returns(adminExchangeResponse){ + option(google.api.http) = { + get:"/api/v1/answer/adminExchange", + }; + } + + + + rpc exchangeAction(exchangeActionRequest)returns(exchangeActionResponse){ + option(google.api.http) = { + post:"/api/v1/answer/exchangeAction", + body:"*", + }; + } + + rpc adminPointsPage(adminPointsPageRequest)returns(adminPointsPageResponse){ + option(google.api.http) = { + get:"/api/v1/answer/adminPointsPage", + }; + } + + rpc adminAddPointAction(adminAddPointActionRequest)returns(adminAddPointActionResponse){ + option(google.api.http) = { + post:"/api/v1/answer/adminAddPointAction", + body:"*", + }; + } + + rpc redirect(redirectRequest)returns(redirectResponse){ + option(google.api.http) = { + get:"/api/v1/answer/redirect", + }; + } + + + rpc clearCheckTimeAction(clearCheckTimeActionRequest)returns(clearCheckTimeActionResponse){ + option(google.api.http) = { + post:"/api/v1/answer/clearCheckTimeAction", + body:"*", + }; + } + + rpc adminSearchHelp(adminSearchHelpRequest)returns(adminSearchHelpResponse){ + option(google.api.http) = { + get:"/api/v1/answer/adminSearchHelp", + }; + } + rpc adminAddHelp(adminAddHelpRequest)returns(adminAddHelpResponse){ + option(google.api.http) = { + post:"/api/v1/answer/adminAddHelp", + body:"*", }; } - rpc delete(loginRequest)returns(loginResponse); + rpc adminGetHelp(adminGetHelpRequest)returns(adminGetHelpResponse){ + option(google.api.http) = { + get:"/api/v1/answer/adminGetHelp", + }; + } + rpc adminDeleteHelp(adminDeleteHelpRequest)returns(adminDeleteHelpResponse){ + option(google.api.http) = { + post:"/api/v1/answer/adminDeleteHelp", + body:"*", + }; + } + + //=== + + rpc adminSearchExchange(adminSearchExchangeRequest)returns(adminSearchExchangeResponse){ + option(google.api.http) = { + get:"/api/v1/answer/adminSearchExchange", + }; + } + rpc adminAddExchange(adminAddExchangeRequest)returns(adminAddExchangeResponse){ + option(google.api.http) = { + post:"/api/v1/answer/adminAddExchange", + body:"*", + }; + } + rpc adminDeleteExchange(adminDeleteExchangeRequest)returns(adminDeleteExchangeResponse){ + option(google.api.http) = { + post:"/api/v1/answer/adminDeleteExchange", + body:"*", + }; + } + + } + + + +//首页问题类型 +message listCategoryRequest { + int32 cityId = 1[(validate.rules).int32.gte = 0]; + string listType = 2[(validate.rules).string.pattern = "^(alatest|latest|noanswer|manswer)$"]; +} +message listCategoryResponseItem{ + string title = 1; + string url = 2; + bool isNew = 3; + int32 num = 4; +} +message listCategoryResponse{ + repeated listCategoryResponseItem list = 1; +} + + +//问题列表 +message listQuestionPageRequest{ + string questionType = 1; + int32 cityId = 2; + int32 categoryId = 3; + int32 page = 4; + int32 createDay = 5; +} +message listQuestionPageResponseItem{ + int32 userId = 1; + string userLogo = 2; + int32 userLevel = 3; + string userName = 4; + string title = 5; + string url = 6; + string lastTimeTitle = 7; + string lastTimeTitleUrl = 8; + string city = 9; + string cityUrl = 10; + string category = 11; + string categoryUrl = 12; + int32 answerCount = 13; + int32 viewCount = 14; + int32 commentCount = 15; + bool isNew = 16; +} +message listQuestionPageResponse{ + repeated listQuestionPageResponseItem list = 1; + int32 count = 2; +} + +// +message listAnswerOfTheDayRequest{ + int32 page = 1; + int32 size = 2[(validate.rules).int32 = {in:[1, 20]}]; +} +message listAnswerOfTheDayResponseItem { + string title = 1; + string url = 2; + string postTime = 3; + string content = 4; + string answeredName = 5; + string shortContent = 6; +} +message listAnswerOfTheDayResponse{ + repeated listAnswerOfTheDayResponseItem list = 1; + int32 num = 2; +} + +//userRightInfoRequest +message userRightInfoRequest{ +} +message userRightInfoResponse{ + int32 userId = 1; + string userName = 2; + string photo = 3; + int32 point = 4; + int32 messageCount = 5; + int32 newNotice = 6; + int32 newAnswer = 7; + int32 newComment = 8; + int32 userLevel = 9; + int32 adminLevel = 10; + string email = 11; +} + +message listHotTopUserRequest{ + +} +message listHotTopUserResponseItem{ + string name = 1; + string photo = 2; + int32 userId = 3; +} +message listHotTopUserResponse{ + repeated listHotTopUserResponseItem hots = 1; + repeated listHotTopUserResponseItem tops = 2; + int32 guestCount = 3; +} + +message listFilterQuestionRequest{ + string title = 1[(validate.rules).string.min_len = 1]; +} +message listFilterQuestionResponseItem{ + string title = 1; + string url = 2; +} +message listFilterQuestionResponse{ + repeated listFilterQuestionResponseItem list = 1; +} + +/// +message listFilterUserRequest{ + string user = 1[(validate.rules).string.min_len = 1]; +} +message listFilterUserResponseItem{ + int32 userId = 1; + string userName = 2; +} +message listFilterUserResponse{ + repeated listFilterUserResponseItem list = 1; +} + + +// +message listRelatedQuestionsRequest{ + int32 cityId = 1; + int32 categoryId = 2; +} +message listRelatedQuestionsResponseItem{ + string title = 1; + string url = 2; + string postTime = 3; +} +message listRelatedQuestionsResponse{ + repeated listRelatedQuestionsResponseItem list = 1; +} + +// +message searchQuestionRequest{ + string keyword = 1; + int32 page = 2; +} +message searchQuestionResponseItem{ + int32 userId = 1; + string userLogo = 2; + string userName = 4; + string title = 5; + string url = 6; + string postTime = 7; + string city = 9; + string cityUrl = 10; + string category = 11; + string categoryUrl = 12; + int32 answerCount = 13; + string content = 3; +} +message searchQuestionResponse{ + repeated searchQuestionResponseItem list = 1; + int32 count = 2; +} +// +message questionDetailPageRequest{ + string aliasKey = 1; + int32 nodeId = 2; + int32 page = 3; +} +message questionDetailPageResponseItemVote{ + int32 good = 1; + int32 bad = 2; + int32 vote = 3; + // 0没有点赞 点赞过 1 good 2 bad + int32 status = 4; +} +message questionDetailPageResponseItemUser{ + string logo = 1; + string name = 2; + int32 postNum = 3; + int32 level = 4; + int32 userId = 5; + bool isAnonymous = 6; + string signature = 7; +} +message questionDetailPageResponseItemQuestionItem{ + bool forbidden = 1; + string city = 2; + string cityUrl = 3; + string category = 4; + string categoryUrl = 5; + string title = 6; + int32 cityId = 7; + int32 categoryId = 8; +} +message questionDetailPageResponseItem{ + + int32 id = 1; + bool canManage = 2; + string content = 3; + bool isDel = 4; + string postTime = 5; + int32 commentNum = 6; + questionDetailPageResponseItemVote vote = 7; + questionDetailPageResponseItemUser user = 8; + questionDetailPageResponseItemQuestionItem question = 9; + repeated questionDetailPageResponseItem comments = 10; +} + +message questionDetailPageResponse{ + questionDetailPageResponseItem question = 1; + questionDetailPageResponseItem highestVoted = 2; + repeated questionDetailPageResponseItem answers = 3; + int32 answerCount = 4; + int32 commentCount = 5; +} + + +message userCenterProfilePageRequest{ + int32 userId = 1[(validate.rules).int32.gte = 1]; + int32 questionPage = 2; + int32 answerPage = 3; +} + +message userCenterProfilePageResponseItem{ + string title = 1; + string postTime = 2; + string answerNum = 3; + string url = 4; + bool isDel = 5; +} +message userCenterProfilePageResponse{ + + bool online = 1; + string userName = 2; + string photo = 3; + int32 point = 4; + string registerTime = 5; + int32 userLevel = 6; + string aboutMe = 7; + string interests = 8; + string skype = 9; + string email = 10; + string google = 11; + int32 questionCount = 12; + repeated userCenterProfilePageResponseItem questions = 13; + int32 answerCount = 14; + repeated userCenterProfilePageResponseItem answers = 15; +} + +message userCenterEditPageRequest{ + int32 userId = 1; +} +message userCenterEditPageData { + string signature = 1; + string aboutMe = 2; + string interests = 3; + string email = 5; + string google = 6; + string skype = 7; + bool isPlainText = 8; + bool isNotify = 9; + int32 userId = 4; +} +message userCenterEditPageResponse{ + userCenterEditPageData data = 1; +} + +message userCenterEditRequest{ + userCenterEditPageData data = 1; + int32 userId = 2; +} +message userCenterEditResponse{ + +} + + +// +message userCenterInBoxPageRequest{ + int32 userId = 1; + int32 page = 2; +} +message userCenterInBoxPageResponseItem{ + int32 id = 1; + string userName = 2; + int32 userId = 3; + bool isNew = 4; + string subject = 5; + string lastTime = 6; +} +message userCenterInBoxPageResponse{ + repeated userCenterInBoxPageResponseItem list = 1; + int32 count = 2; +} + + +// +message deleteInboxRequest{ + int32 userId = 1; + repeated int32 ids = 2; +} +message deleteInboxResponse{ + +} + +message messageSendRequest{ + repeated int32 userIds = 1; + string subject = 2; + string content = 3 [(validate.rules).string.min_len = 1]; + //消息ThreadId + int32 threadId = 4; +} +message messageSendResponse{ + int32 id = 1; +} + +message messageDetailPageRequest{ + int32 messageId = 1; + int32 page = 2; +} +message messageDetailPageResponseItem{ + int32 userId = 1; + string photo = 2; + string userName = 3; + string postTime = 4; + int32 id = 5; + string content = 6; + bool isNew = 7; +} +message messageDetailPageResponse{ + repeated messageDetailPageResponseItem list = 1; + string fromName = 2; + int32 count = 3; + int32 threadId = 4; +} +message userCenterPointsPageRequest{ + int32 userId = 1; + int32 page = 2; +} +message userCenterPointsPageResponseItem{ + int32 point = 1; + string url = 2; + string doTime = 3; + string pointType = 4; + int32 id = 5; +} +message userCenterPointsPageResponse{ + repeated userCenterPointsPageResponseItem list = 1; + int32 count = 2; + int32 allPoints = 3; +} + +message userCenterNewAnswersPageRequest{ + int32 userId = 1; + int32 page = 2; +} +message userCenterNewAnswersPageResponseItem{ + int32 userId = 1; + string userName = 2; + string logo = 3; + string answer = 4; + string answerTime = 5; + string answerUrl = 6; + string questionUrl = 7; + string question = 8; + int32 id = 9; +} +message userCenterNewAnswersPageResponse{ + repeated userCenterNewAnswersPageResponseItem list = 1; + int32 count = 2; +} + +message userCenterNewCommentsPageRequest{ + int32 page = 1; + int32 userId = 2; +} +message userCenterNewCommentsPageResponseItem{ + int32 userId = 1; + string userName = 2; + string logo = 3; + string comment = 4; + string commentTime = 5; + string commentUrl = 6; + string answer = 7; + string answerUrl = 8; + int32 answeredId = 9; + int32 id = 10; +} + +message userCenterNewCommentsPageResponse{ + repeated userCenterNewCommentsPageResponseItem list = 1; + int32 count = 2; +} +message captchaRequest{ + +} +message captchaResponse{ + string key = 1; + string val = 2; +} +message noticesPageRequest{ + int32 page = 1[(validate.rules).int32.gte = 0]; +} +message noticesPageResponseItem{ + string title = 1; + string postTime = 2; + string content = 3; + int32 id = 4; +} + +message noticesPageResponse{ + + repeated noticesPageResponseItem list = 1; + int32 count = 2; +} + + +message forbiddenQuestionRequest{ + int32 questionId = 1; + bool isForbidden = 2; +} +message forbiddenQuestionResponse{ + bool isForbidden = 1; +} + +message addQuestionRequest{ + string title = 1[(validate.rules).string = {min_len:1,max_len:100}]; + string content = 2[(validate.rules).string = {min_len:1}]; + int32 categoryId = 3[(validate.rules).int32.gte = 1]; + int32 cityId = 4[(validate.rules).int32.gte = 1]; + int32 id = 5; + int32 userId = 6[(validate.rules).int32.gte = 1]; + +} +message addQuestionResponse{ + string url = 1; +} +message getEditQuestionRequest{ + int32 nid = 1[(validate.rules).int32.gte = 1]; +} +message getEditQuestionResponse{ + string title = 1; + string content = 2; + int32 categoryId = 3; + int32 cityId = 4; + int32 id = 5; + bool isAnswer = 6; +} +message editUserLogoRequest{ + string imageData = 1; + int32 userId = 2; +} +message editUserLogoResponse{ + string url = 1; +} +message deleteNodeRequest{ + int32 nodeId = 1[(validate.rules).int32.gte = 1]; + string reasonTitle = 2[(validate.rules).string.min_len = 1]; + string reasonBody = 3[(validate.rules).string.min_len = 1]; +} +message deleteNodeResponse{ + +} + +message reportRequest{ + int32 nodeId = 1[(validate.rules).int32.gte = 1]; + string content = 2[(validate.rules).string.min_len = 1]; + string code = 3[(validate.rules).string.len = 4]; + string codeKey = 4[(validate.rules).string.min_len = 1]; + string type = 5[(validate.rules).string.pattern = "^(question|answer|comment|message|notice)$"]; + +} +message reportResponse{ + +} + + +message forwardQuestionRequest{ + int32 nodeId = 1[(validate.rules).int32.gte = 1]; + string content = 2[(validate.rules).string.min_len = 1]; + string originalContent = 3[(validate.rules).string.min_len = 1]; + string sendTo = 4[(validate.rules).string.min_len = 1]; + +} +message forwardQuestionResponse{ + +} +message addAnswerRequest{ + int32 id = 1; + int32 parentId = 2;//编辑时不填 + string title = 3; + string content = 4[(validate.rules).string.min_len = 1]; +} +message addAnswerResponse{ + +} + +message voteNodeGoodRequest{ + int32 nodeId = 1; + bool isGood = 2; +} +message voteNodeGoodResponse{ + +} + message loginRequest{ - string username = 1 [(validate.rules).string = {min_len:4,max_len:10}]; - string password = 2 [(validate.rules).string = {min_len:4,max_len:10}]; - string first_name = 3; + string loginType = 1; + string userName = 2; + string password = 3; + string code = 4; } + message loginResponse{ - string token = 1; -} \ No newline at end of file + string code = 1; +} + +message adminRolesPageRequest{ + +} + +message adminRolesPageResponseItem{ + string name = 1; + int32 id = 2; + bool isBlock = 3; +} + +message adminRolesPageResponse{ + repeated adminRolesPageResponseItem list = 1; + int32 count = 2; +} + +message adminUpdateRoleActionRequest{ + string title = 1; + int32 id = 2; +} +message adminUpdateRoleActionResponse{ + +} + +message adminUserPageRequest{ + int32 roleId = 1; + int32 status = 2; + string createdStart = 3; + string createdEnd = 4; + string loginStart = 5; + string loginEnd = 6; + string email = 7; + int32 userId = 8; + string name = 9; + int32 page = 10; +} +message adminUserPageResponseItem{ + int32 id = 1; + string name = 2; + string status = 3; + repeated int32 roles = 4; + string registerTime = 5; + string lastTime = 6; +} + +message adminUserPageResponse{ + repeated adminUserPageResponseItem list = 1; + int32 count = 2; +} + + +// +message adminUpdateUserActionRequest{ + int32 userId = 1; + google.protobuf.Int32Value status = 2; + repeated google.protobuf.Int32Value roleIds = 3; +} +message adminUpdateUserActionResponse{ + +} + +message adminNodePageRequest{ + int32 status = 1; + // 1 answer 2 question + int32 type = 2; + int32 page = 4; + string createdStart = 5; + string createdEnd = 6; + string title = 7; + string name = 8; + int32 userId = 9; +} +message adminNodePageResponseItem { + int32 id = 1; + string title = 2; + string type = 3; + int32 userId = 4; + string userName = 5; + int32 status = 6; + string url = 7; + int32 promote = 8; + int32 sticky = 9; + string reason = 10; + string postTime = 11; + string changedTime = 12; +} +message adminNodePageResponse{ + repeated adminNodePageResponseItem list = 1; + int32 count = 2; +} +message updateNodeRequest{ + google.protobuf.Int32Value status = 1; + google.protobuf.Int32Value promote = 2; + google.protobuf.Int32Value sticky = 3; + repeated int32 nodeIds = 4; +} +message updateNodeResponse{ + +} + +message helpPageRequest{ + string urlKey = 1[(validate.rules).string.min_len = 1]; +} +message helpPageResponseItem { + string title = 1; + string url = 2; + repeated helpPageResponseItem children = 3; + int32 pid = 4; +} +message helpPageResponse{ + repeated helpPageResponseItem menus = 1; + string content = 2; + string title = 3; +} + +message randQuestionRequest{ + +} +message randQuestionResponse{ + string url = 1; +} +message exchangeRequest{ + +} +message exchangeResponseItem{ + string title = 1; + string content = 2; + int32 point = 3; + string image = 4; + int32 id = 5; +} +message exchangeResponse{ + repeated exchangeResponseItem list = 1; +} + +message adminExchangeRequest{ + int32 page = 1; +} + +message adminExchangeResponseItem{ + int32 id = 1; + string type = 2; + string name = 3; + int32 userId = 4; + int32 points = 5; + string email = 6; + string addressCode = 7; + string address = 8; + string other = 9; + string createdTime = 10; +} +message adminExchangeResponse{ + repeated adminExchangeResponseItem list = 1; + int32 count = 2; +} +message exchangeActionRequest{ + int32 id = 1[(validate.rules).int32.gte = 1]; + string name = 3[(validate.rules).string.min_len = 1]; + string email = 6[(validate.rules).string.min_len = 1]; + string addressCode = 7; + string address = 8[(validate.rules).string.min_len = 1]; + string other = 9; +} +message exchangeActionResponse{ + +} + +message adminPointsPageRequest{ + int32 userId = 1; + int32 typeId = 2; + int32 page = 3; + string startTime = 4; + string endTime = 5; +} + +message adminPointsPageResponseItem{ + int32 id = 1; + int32 userId = 2; + int32 point = 3; + string createdTime = 4; + int32 typeId = 5; + string url = 6; + string userName = 7; +} +message adminPointsPageResponse{ + repeated adminPointsPageResponseItem list = 1; + int32 count = 2; +} +//query: INSERT INTO userpoints_txn (uid, approver_uid, points, time_stamp, changed, status, description, reference, expirydate, expired, parent_txn_id, tid, entity_id, operation) VALUES (1, 0, 100000, 1658815066, 1658815066, 0, 'desc', '111111', 0, 0, 0, 16, 0, 'admin') +//query: UPDATE userpoints SET points = 100010, max_points = 100012, last_update = 1658815066 WHERE uid = 1 AND tid = 16 +message adminAddPointActionRequest{ + int32 userId = 1[(validate.rules).int32.gte = 1]; + int32 point = 2[(validate.rules).int32.gte = 1]; + int32 typeId = 3[(validate.rules).int32.gte = 1]; + string description = 4; + int32 entryId = 5; +} +message adminAddPointActionResponse{ + +} + +message redirectRequest{ + int32 id = 1[(validate.rules).int32.gte = 1]; + string type = 2[(validate.rules).string.min_len = 1]; +} +message redirectResponse{ + string url = 1; +} + + +message clearCheckTimeActionRequest{ + int32 typeId = 1; +} + +message clearCheckTimeActionResponse{ + +} + +message adminAddHelpRequest{ + int32 id = 1; + string title = 2[(validate.rules).string.min_len = 1]; + string url = 3; + int32 parentId = 4; + int32 sort = 5; + string content = 6; +} +message adminAddHelpResponse{ + int32 id = 1; +} + +message adminSearchHelpRequest{ + int32 status = 1; + int32 page = 2; +} + +message adminSearchHelpResponseItem{ + int32 id = 1; + string title = 2; + string url = 3; + int32 sort = 4; + int32 status = 5; +} +message adminSearchHelpResponse{ + repeated adminSearchHelpResponseItem list = 1; + int32 num = 2; +} + +message adminGetHelpRequest{ + int32 id = 1; +} +message adminGetHelpResponseItem{ + int32 id = 1; + string title = 2; + int32 sort = 3; + string content = 4; +} +message adminGetHelpResponse{ + int32 id = 1; + string title = 2; + string url = 3; + int32 sort = 4; + repeated adminGetHelpResponseItem list = 5; +} + +message adminDeleteHelpRequest{ + int32 id = 1; + int32 status = 2; +} +message adminDeleteHelpResponse{ + +} + + +message adminSearchExchangeRequest{ + int32 status = 1; + int32 page = 2; +} +message adminSearchExchangeResponseItem{ + int32 id = 1; + string title = 2; + string content = 3; + string picture = 4; + int32 point = 5; + int32 status = 6; +} +message adminSearchExchangeResponse{ + repeated adminSearchExchangeResponseItem list = 1; + int32 count = 2; +} +message adminAddExchangeRequest{ + int32 id = 1; + string title = 2; + string content = 3; + string picture = 4; + int32 point = 5; +} +message adminAddExchangeResponse{ + +} +message adminDeleteExchangeRequest{ + int32 id = 1; + int32 status = 2; +} +message adminDeleteExchangeResponse{ + repeated bytes a = 1; + int32 b = 2; + mapc = 3; + bytes ad=4; +} diff --git a/proto/v1/auth/auth.pb.go b/proto/v1/auth/auth.pb.go index c8f5e25..ad26f79 100644 --- a/proto/v1/auth/auth.pb.go +++ b/proto/v1/auth/auth.pb.go @@ -118,11 +118,11 @@ var file_auth_auth_proto_rawDesc = []byte{ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd7, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x61, 0x75, 0x74, 0x68, 0x42, - 0x3f, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x2e, 0x65, 0x63, 0x68, 0x69, 0x6e, 0x61, 0x63, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x6f, 0x67, 0x66, 0x65, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x3b, 0x61, 0x75, 0x74, 0x68, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x2e, 0x64, 0x69, 0x75, 0x6c, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x6d, 0x6f, 0x67, 0x66, 0x65, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, + 0x65, 0x6e, 0x2d, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, + 0x61, 0x75, 0x74, 0x68, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/proto/v1/user.gin.go b/proto/v1/user.gin.go index 789c0da..f8a9d7c 100644 --- a/proto/v1/user.gin.go +++ b/proto/v1/user.gin.go @@ -44,7 +44,7 @@ func httpLoginHandler(srv UserServer, m ...middleware.Middleware) func(c *gin.Co return } h := func(ctx context.Context, a any) (any, error) { - return srv.List(ctx, a.(*LoginRequest)) + return srv.Login(ctx, a.(*LoginRequest)) } out, err := middleware.HttpMiddleware(c, h, m...)(c, &post) if err != nil { diff --git a/proto/v1/user.pb.go b/proto/v1/user.pb.go index 5b13815..a56dec0 100644 --- a/proto/v1/user.pb.go +++ b/proto/v1/user.pb.go @@ -4,14 +4,14 @@ // protoc v3.18.1 // source: user.proto -package user +package answer import ( _ "github.com/envoyproxy/protoc-gen-validate/validate" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - _ "google.golang.org/protobuf/types/descriptorpb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" reflect "reflect" sync "sync" ) @@ -23,18 +23,18 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type LoginRequest struct { +//首页问题类型 +type ListCategoryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` - Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` - FirstName string `protobuf:"bytes,3,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + CityId int32 `protobuf:"varint,1,opt,name=cityId,proto3" json:"cityId,omitempty"` + ListType string `protobuf:"bytes,2,opt,name=listType,proto3" json:"listType,omitempty"` } -func (x *LoginRequest) Reset() { - *x = LoginRequest{} +func (x *ListCategoryRequest) Reset() { + *x = ListCategoryRequest{} if protoimpl.UnsafeEnabled { mi := &file_user_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42,13 +42,13 @@ func (x *LoginRequest) Reset() { } } -func (x *LoginRequest) String() string { +func (x *ListCategoryRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LoginRequest) ProtoMessage() {} +func (*ListCategoryRequest) ProtoMessage() {} -func (x *LoginRequest) ProtoReflect() protoreflect.Message { +func (x *ListCategoryRequest) ProtoReflect() protoreflect.Message { mi := &file_user_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60,57 +60,121 @@ func (x *LoginRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LoginRequest.ProtoReflect.Descriptor instead. -func (*LoginRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListCategoryRequest.ProtoReflect.Descriptor instead. +func (*ListCategoryRequest) Descriptor() ([]byte, []int) { return file_user_proto_rawDescGZIP(), []int{0} } -func (x *LoginRequest) GetUsername() string { +func (x *ListCategoryRequest) GetCityId() int32 { if x != nil { - return x.Username + return x.CityId + } + return 0 +} + +func (x *ListCategoryRequest) GetListType() string { + if x != nil { + return x.ListType } return "" } -func (x *LoginRequest) GetPassword() string { +type ListCategoryResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + IsNew bool `protobuf:"varint,3,opt,name=isNew,proto3" json:"isNew,omitempty"` + Num int32 `protobuf:"varint,4,opt,name=num,proto3" json:"num,omitempty"` +} + +func (x *ListCategoryResponseItem) Reset() { + *x = ListCategoryResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListCategoryResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCategoryResponseItem) ProtoMessage() {} + +func (x *ListCategoryResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListCategoryResponseItem.ProtoReflect.Descriptor instead. +func (*ListCategoryResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{1} +} + +func (x *ListCategoryResponseItem) GetTitle() string { if x != nil { - return x.Password + return x.Title } return "" } -func (x *LoginRequest) GetFirstName() string { +func (x *ListCategoryResponseItem) GetUrl() string { if x != nil { - return x.FirstName + return x.Url } return "" } -type LoginResponse struct { +func (x *ListCategoryResponseItem) GetIsNew() bool { + if x != nil { + return x.IsNew + } + return false +} + +func (x *ListCategoryResponseItem) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +type ListCategoryResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + List []*ListCategoryResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` } -func (x *LoginResponse) Reset() { - *x = LoginResponse{} +func (x *ListCategoryResponse) Reset() { + *x = ListCategoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_user_proto_msgTypes[1] + mi := &file_user_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LoginResponse) String() string { +func (x *ListCategoryResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LoginResponse) ProtoMessage() {} +func (*ListCategoryResponse) ProtoMessage() {} -func (x *LoginResponse) ProtoReflect() protoreflect.Message { - mi := &file_user_proto_msgTypes[1] +func (x *ListCategoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121,111 +185,12200 @@ func (x *LoginResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LoginResponse.ProtoReflect.Descriptor instead. -func (*LoginResponse) Descriptor() ([]byte, []int) { - return file_user_proto_rawDescGZIP(), []int{1} +// Deprecated: Use ListCategoryResponse.ProtoReflect.Descriptor instead. +func (*ListCategoryResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{2} } -func (x *LoginResponse) GetToken() string { +func (x *ListCategoryResponse) GetList() []*ListCategoryResponseItem { if x != nil { - return x.Token + return x.List + } + return nil +} + +//问题列表 +type ListQuestionPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + QuestionType string `protobuf:"bytes,1,opt,name=questionType,proto3" json:"questionType,omitempty"` + CityId int32 `protobuf:"varint,2,opt,name=cityId,proto3" json:"cityId,omitempty"` + CategoryId int32 `protobuf:"varint,3,opt,name=categoryId,proto3" json:"categoryId,omitempty"` + Page int32 `protobuf:"varint,4,opt,name=page,proto3" json:"page,omitempty"` + CreateDay int32 `protobuf:"varint,5,opt,name=createDay,proto3" json:"createDay,omitempty"` +} + +func (x *ListQuestionPageRequest) Reset() { + *x = ListQuestionPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListQuestionPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListQuestionPageRequest) ProtoMessage() {} + +func (x *ListQuestionPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListQuestionPageRequest.ProtoReflect.Descriptor instead. +func (*ListQuestionPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{3} +} + +func (x *ListQuestionPageRequest) GetQuestionType() string { + if x != nil { + return x.QuestionType } return "" } -var File_user_proto protoreflect.FileDescriptor +func (x *ListQuestionPageRequest) GetCityId() int32 { + if x != nil { + return x.CityId + } + return 0 +} -var file_user_proto_rawDesc = []byte{ - 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x63, 0x6f, - 0x6d, 0x2e, 0x77, 0x65, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x17, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7b, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x72, 0x04, - 0x10, 0x04, 0x18, 0x0a, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, - 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x09, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x04, 0x18, 0x0a, 0x52, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x25, 0x0a, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0x9e, 0x02, 0x0a, 0x04, - 0x75, 0x73, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x77, 0x65, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x63, - 0x6f, 0x6d, 0x2e, 0x77, 0x65, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, - 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x67, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, - 0x6e, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x77, 0x65, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x77, 0x65, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x3a, 0x01, - 0x2a, 0x12, 0x49, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x77, 0x65, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x6c, - 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x63, 0x6f, - 0x6d, 0x2e, 0x77, 0x65, 0x62, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x6c, - 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0x5a, 0x07, - 0x2e, 0x2f, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +func (x *ListQuestionPageRequest) GetCategoryId() int32 { + if x != nil { + return x.CategoryId + } + return 0 } -var ( - file_user_proto_rawDescOnce sync.Once - file_user_proto_rawDescData = file_user_proto_rawDesc -) +func (x *ListQuestionPageRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} -func file_user_proto_rawDescGZIP() []byte { - file_user_proto_rawDescOnce.Do(func() { - file_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_proto_rawDescData) - }) - return file_user_proto_rawDescData +func (x *ListQuestionPageRequest) GetCreateDay() int32 { + if x != nil { + return x.CreateDay + } + return 0 } -var file_user_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_user_proto_goTypes = []interface{}{ - (*LoginRequest)(nil), // 0: com.web.api.user.loginRequest - (*LoginResponse)(nil), // 1: com.web.api.user.loginResponse +type ListQuestionPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + UserLogo string `protobuf:"bytes,2,opt,name=userLogo,proto3" json:"userLogo,omitempty"` + UserLevel int32 `protobuf:"varint,3,opt,name=userLevel,proto3" json:"userLevel,omitempty"` + UserName string `protobuf:"bytes,4,opt,name=userName,proto3" json:"userName,omitempty"` + Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` + Url string `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"` + LastTimeTitle string `protobuf:"bytes,7,opt,name=lastTimeTitle,proto3" json:"lastTimeTitle,omitempty"` + LastTimeTitleUrl string `protobuf:"bytes,8,opt,name=lastTimeTitleUrl,proto3" json:"lastTimeTitleUrl,omitempty"` + City string `protobuf:"bytes,9,opt,name=city,proto3" json:"city,omitempty"` + CityUrl string `protobuf:"bytes,10,opt,name=cityUrl,proto3" json:"cityUrl,omitempty"` + Category string `protobuf:"bytes,11,opt,name=category,proto3" json:"category,omitempty"` + CategoryUrl string `protobuf:"bytes,12,opt,name=categoryUrl,proto3" json:"categoryUrl,omitempty"` + AnswerCount int32 `protobuf:"varint,13,opt,name=answerCount,proto3" json:"answerCount,omitempty"` + ViewCount int32 `protobuf:"varint,14,opt,name=viewCount,proto3" json:"viewCount,omitempty"` + CommentCount int32 `protobuf:"varint,15,opt,name=commentCount,proto3" json:"commentCount,omitempty"` + IsNew bool `protobuf:"varint,16,opt,name=isNew,proto3" json:"isNew,omitempty"` } -var file_user_proto_depIdxs = []int32{ - 0, // 0: com.web.api.user.user.list:input_type -> com.web.api.user.loginRequest - 0, // 1: com.web.api.user.user.login:input_type -> com.web.api.user.loginRequest - 0, // 2: com.web.api.user.user.delete:input_type -> com.web.api.user.loginRequest - 1, // 3: com.web.api.user.user.list:output_type -> com.web.api.user.loginResponse - 1, // 4: com.web.api.user.user.login:output_type -> com.web.api.user.loginResponse - 1, // 5: com.web.api.user.user.delete:output_type -> com.web.api.user.loginResponse - 3, // [3:6] is the sub-list for method output_type - 0, // [0:3] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + +func (x *ListQuestionPageResponseItem) Reset() { + *x = ListQuestionPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func init() { file_user_proto_init() } -func file_user_proto_init() { - if File_user_proto != nil { - return +func (x *ListQuestionPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListQuestionPageResponseItem) ProtoMessage() {} + +func (x *ListQuestionPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - if !protoimpl.UnsafeEnabled { - file_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoginRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } + return mi.MessageOf(x) +} + +// Deprecated: Use ListQuestionPageResponseItem.ProtoReflect.Descriptor instead. +func (*ListQuestionPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{4} +} + +func (x *ListQuestionPageResponseItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *ListQuestionPageResponseItem) GetUserLogo() string { + if x != nil { + return x.UserLogo + } + return "" +} + +func (x *ListQuestionPageResponseItem) GetUserLevel() int32 { + if x != nil { + return x.UserLevel + } + return 0 +} + +func (x *ListQuestionPageResponseItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *ListQuestionPageResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *ListQuestionPageResponseItem) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *ListQuestionPageResponseItem) GetLastTimeTitle() string { + if x != nil { + return x.LastTimeTitle + } + return "" +} + +func (x *ListQuestionPageResponseItem) GetLastTimeTitleUrl() string { + if x != nil { + return x.LastTimeTitleUrl + } + return "" +} + +func (x *ListQuestionPageResponseItem) GetCity() string { + if x != nil { + return x.City + } + return "" +} + +func (x *ListQuestionPageResponseItem) GetCityUrl() string { + if x != nil { + return x.CityUrl + } + return "" +} + +func (x *ListQuestionPageResponseItem) GetCategory() string { + if x != nil { + return x.Category + } + return "" +} + +func (x *ListQuestionPageResponseItem) GetCategoryUrl() string { + if x != nil { + return x.CategoryUrl + } + return "" +} + +func (x *ListQuestionPageResponseItem) GetAnswerCount() int32 { + if x != nil { + return x.AnswerCount + } + return 0 +} + +func (x *ListQuestionPageResponseItem) GetViewCount() int32 { + if x != nil { + return x.ViewCount + } + return 0 +} + +func (x *ListQuestionPageResponseItem) GetCommentCount() int32 { + if x != nil { + return x.CommentCount + } + return 0 +} + +func (x *ListQuestionPageResponseItem) GetIsNew() bool { + if x != nil { + return x.IsNew + } + return false +} + +type ListQuestionPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*ListQuestionPageResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *ListQuestionPageResponse) Reset() { + *x = ListQuestionPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListQuestionPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListQuestionPageResponse) ProtoMessage() {} + +func (x *ListQuestionPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) } - file_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoginResponse); i { + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListQuestionPageResponse.ProtoReflect.Descriptor instead. +func (*ListQuestionPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{5} +} + +func (x *ListQuestionPageResponse) GetList() []*ListQuestionPageResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *ListQuestionPageResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +// +type ListAnswerOfTheDayRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + Size int32 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` +} + +func (x *ListAnswerOfTheDayRequest) Reset() { + *x = ListAnswerOfTheDayRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListAnswerOfTheDayRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAnswerOfTheDayRequest) ProtoMessage() {} + +func (x *ListAnswerOfTheDayRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListAnswerOfTheDayRequest.ProtoReflect.Descriptor instead. +func (*ListAnswerOfTheDayRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{6} +} + +func (x *ListAnswerOfTheDayRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *ListAnswerOfTheDayRequest) GetSize() int32 { + if x != nil { + return x.Size + } + return 0 +} + +type ListAnswerOfTheDayResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + PostTime string `protobuf:"bytes,3,opt,name=postTime,proto3" json:"postTime,omitempty"` + Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"` + AnsweredName string `protobuf:"bytes,5,opt,name=answeredName,proto3" json:"answeredName,omitempty"` + ShortContent string `protobuf:"bytes,6,opt,name=shortContent,proto3" json:"shortContent,omitempty"` +} + +func (x *ListAnswerOfTheDayResponseItem) Reset() { + *x = ListAnswerOfTheDayResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListAnswerOfTheDayResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAnswerOfTheDayResponseItem) ProtoMessage() {} + +func (x *ListAnswerOfTheDayResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListAnswerOfTheDayResponseItem.ProtoReflect.Descriptor instead. +func (*ListAnswerOfTheDayResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{7} +} + +func (x *ListAnswerOfTheDayResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *ListAnswerOfTheDayResponseItem) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *ListAnswerOfTheDayResponseItem) GetPostTime() string { + if x != nil { + return x.PostTime + } + return "" +} + +func (x *ListAnswerOfTheDayResponseItem) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *ListAnswerOfTheDayResponseItem) GetAnsweredName() string { + if x != nil { + return x.AnsweredName + } + return "" +} + +func (x *ListAnswerOfTheDayResponseItem) GetShortContent() string { + if x != nil { + return x.ShortContent + } + return "" +} + +type ListAnswerOfTheDayResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*ListAnswerOfTheDayResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` +} + +func (x *ListAnswerOfTheDayResponse) Reset() { + *x = ListAnswerOfTheDayResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListAnswerOfTheDayResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAnswerOfTheDayResponse) ProtoMessage() {} + +func (x *ListAnswerOfTheDayResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListAnswerOfTheDayResponse.ProtoReflect.Descriptor instead. +func (*ListAnswerOfTheDayResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{8} +} + +func (x *ListAnswerOfTheDayResponse) GetList() []*ListAnswerOfTheDayResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *ListAnswerOfTheDayResponse) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +//userRightInfoRequest +type UserRightInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UserRightInfoRequest) Reset() { + *x = UserRightInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserRightInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserRightInfoRequest) ProtoMessage() {} + +func (x *UserRightInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserRightInfoRequest.ProtoReflect.Descriptor instead. +func (*UserRightInfoRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{9} +} + +type UserRightInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + Photo string `protobuf:"bytes,3,opt,name=photo,proto3" json:"photo,omitempty"` + Point int32 `protobuf:"varint,4,opt,name=point,proto3" json:"point,omitempty"` + MessageCount int32 `protobuf:"varint,5,opt,name=messageCount,proto3" json:"messageCount,omitempty"` + NewNotice int32 `protobuf:"varint,6,opt,name=newNotice,proto3" json:"newNotice,omitempty"` + NewAnswer int32 `protobuf:"varint,7,opt,name=newAnswer,proto3" json:"newAnswer,omitempty"` + NewComment int32 `protobuf:"varint,8,opt,name=newComment,proto3" json:"newComment,omitempty"` + UserLevel int32 `protobuf:"varint,9,opt,name=userLevel,proto3" json:"userLevel,omitempty"` + AdminLevel int32 `protobuf:"varint,10,opt,name=adminLevel,proto3" json:"adminLevel,omitempty"` + Email string `protobuf:"bytes,11,opt,name=email,proto3" json:"email,omitempty"` +} + +func (x *UserRightInfoResponse) Reset() { + *x = UserRightInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserRightInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserRightInfoResponse) ProtoMessage() {} + +func (x *UserRightInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserRightInfoResponse.ProtoReflect.Descriptor instead. +func (*UserRightInfoResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{10} +} + +func (x *UserRightInfoResponse) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UserRightInfoResponse) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *UserRightInfoResponse) GetPhoto() string { + if x != nil { + return x.Photo + } + return "" +} + +func (x *UserRightInfoResponse) GetPoint() int32 { + if x != nil { + return x.Point + } + return 0 +} + +func (x *UserRightInfoResponse) GetMessageCount() int32 { + if x != nil { + return x.MessageCount + } + return 0 +} + +func (x *UserRightInfoResponse) GetNewNotice() int32 { + if x != nil { + return x.NewNotice + } + return 0 +} + +func (x *UserRightInfoResponse) GetNewAnswer() int32 { + if x != nil { + return x.NewAnswer + } + return 0 +} + +func (x *UserRightInfoResponse) GetNewComment() int32 { + if x != nil { + return x.NewComment + } + return 0 +} + +func (x *UserRightInfoResponse) GetUserLevel() int32 { + if x != nil { + return x.UserLevel + } + return 0 +} + +func (x *UserRightInfoResponse) GetAdminLevel() int32 { + if x != nil { + return x.AdminLevel + } + return 0 +} + +func (x *UserRightInfoResponse) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +type ListHotTopUserRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ListHotTopUserRequest) Reset() { + *x = ListHotTopUserRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListHotTopUserRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListHotTopUserRequest) ProtoMessage() {} + +func (x *ListHotTopUserRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListHotTopUserRequest.ProtoReflect.Descriptor instead. +func (*ListHotTopUserRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{11} +} + +type ListHotTopUserResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Photo string `protobuf:"bytes,2,opt,name=photo,proto3" json:"photo,omitempty"` + UserId int32 `protobuf:"varint,3,opt,name=userId,proto3" json:"userId,omitempty"` +} + +func (x *ListHotTopUserResponseItem) Reset() { + *x = ListHotTopUserResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListHotTopUserResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListHotTopUserResponseItem) ProtoMessage() {} + +func (x *ListHotTopUserResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListHotTopUserResponseItem.ProtoReflect.Descriptor instead. +func (*ListHotTopUserResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{12} +} + +func (x *ListHotTopUserResponseItem) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ListHotTopUserResponseItem) GetPhoto() string { + if x != nil { + return x.Photo + } + return "" +} + +func (x *ListHotTopUserResponseItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +type ListHotTopUserResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hots []*ListHotTopUserResponseItem `protobuf:"bytes,1,rep,name=hots,proto3" json:"hots,omitempty"` + Tops []*ListHotTopUserResponseItem `protobuf:"bytes,2,rep,name=tops,proto3" json:"tops,omitempty"` + GuestCount int32 `protobuf:"varint,3,opt,name=guestCount,proto3" json:"guestCount,omitempty"` +} + +func (x *ListHotTopUserResponse) Reset() { + *x = ListHotTopUserResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListHotTopUserResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListHotTopUserResponse) ProtoMessage() {} + +func (x *ListHotTopUserResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListHotTopUserResponse.ProtoReflect.Descriptor instead. +func (*ListHotTopUserResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{13} +} + +func (x *ListHotTopUserResponse) GetHots() []*ListHotTopUserResponseItem { + if x != nil { + return x.Hots + } + return nil +} + +func (x *ListHotTopUserResponse) GetTops() []*ListHotTopUserResponseItem { + if x != nil { + return x.Tops + } + return nil +} + +func (x *ListHotTopUserResponse) GetGuestCount() int32 { + if x != nil { + return x.GuestCount + } + return 0 +} + +type ListFilterQuestionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` +} + +func (x *ListFilterQuestionRequest) Reset() { + *x = ListFilterQuestionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFilterQuestionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFilterQuestionRequest) ProtoMessage() {} + +func (x *ListFilterQuestionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFilterQuestionRequest.ProtoReflect.Descriptor instead. +func (*ListFilterQuestionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{14} +} + +func (x *ListFilterQuestionRequest) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +type ListFilterQuestionResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *ListFilterQuestionResponseItem) Reset() { + *x = ListFilterQuestionResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFilterQuestionResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFilterQuestionResponseItem) ProtoMessage() {} + +func (x *ListFilterQuestionResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFilterQuestionResponseItem.ProtoReflect.Descriptor instead. +func (*ListFilterQuestionResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{15} +} + +func (x *ListFilterQuestionResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *ListFilterQuestionResponseItem) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type ListFilterQuestionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*ListFilterQuestionResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` +} + +func (x *ListFilterQuestionResponse) Reset() { + *x = ListFilterQuestionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFilterQuestionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFilterQuestionResponse) ProtoMessage() {} + +func (x *ListFilterQuestionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFilterQuestionResponse.ProtoReflect.Descriptor instead. +func (*ListFilterQuestionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{16} +} + +func (x *ListFilterQuestionResponse) GetList() []*ListFilterQuestionResponseItem { + if x != nil { + return x.List + } + return nil +} + +/// +type ListFilterUserRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` +} + +func (x *ListFilterUserRequest) Reset() { + *x = ListFilterUserRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFilterUserRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFilterUserRequest) ProtoMessage() {} + +func (x *ListFilterUserRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFilterUserRequest.ProtoReflect.Descriptor instead. +func (*ListFilterUserRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{17} +} + +func (x *ListFilterUserRequest) GetUser() string { + if x != nil { + return x.User + } + return "" +} + +type ListFilterUserResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` +} + +func (x *ListFilterUserResponseItem) Reset() { + *x = ListFilterUserResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFilterUserResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFilterUserResponseItem) ProtoMessage() {} + +func (x *ListFilterUserResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFilterUserResponseItem.ProtoReflect.Descriptor instead. +func (*ListFilterUserResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{18} +} + +func (x *ListFilterUserResponseItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *ListFilterUserResponseItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +type ListFilterUserResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*ListFilterUserResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` +} + +func (x *ListFilterUserResponse) Reset() { + *x = ListFilterUserResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFilterUserResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFilterUserResponse) ProtoMessage() {} + +func (x *ListFilterUserResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFilterUserResponse.ProtoReflect.Descriptor instead. +func (*ListFilterUserResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{19} +} + +func (x *ListFilterUserResponse) GetList() []*ListFilterUserResponseItem { + if x != nil { + return x.List + } + return nil +} + +// +type ListRelatedQuestionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CityId int32 `protobuf:"varint,1,opt,name=cityId,proto3" json:"cityId,omitempty"` + CategoryId int32 `protobuf:"varint,2,opt,name=categoryId,proto3" json:"categoryId,omitempty"` +} + +func (x *ListRelatedQuestionsRequest) Reset() { + *x = ListRelatedQuestionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRelatedQuestionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRelatedQuestionsRequest) ProtoMessage() {} + +func (x *ListRelatedQuestionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRelatedQuestionsRequest.ProtoReflect.Descriptor instead. +func (*ListRelatedQuestionsRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{20} +} + +func (x *ListRelatedQuestionsRequest) GetCityId() int32 { + if x != nil { + return x.CityId + } + return 0 +} + +func (x *ListRelatedQuestionsRequest) GetCategoryId() int32 { + if x != nil { + return x.CategoryId + } + return 0 +} + +type ListRelatedQuestionsResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + PostTime string `protobuf:"bytes,3,opt,name=postTime,proto3" json:"postTime,omitempty"` +} + +func (x *ListRelatedQuestionsResponseItem) Reset() { + *x = ListRelatedQuestionsResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRelatedQuestionsResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRelatedQuestionsResponseItem) ProtoMessage() {} + +func (x *ListRelatedQuestionsResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRelatedQuestionsResponseItem.ProtoReflect.Descriptor instead. +func (*ListRelatedQuestionsResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{21} +} + +func (x *ListRelatedQuestionsResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *ListRelatedQuestionsResponseItem) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *ListRelatedQuestionsResponseItem) GetPostTime() string { + if x != nil { + return x.PostTime + } + return "" +} + +type ListRelatedQuestionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*ListRelatedQuestionsResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` +} + +func (x *ListRelatedQuestionsResponse) Reset() { + *x = ListRelatedQuestionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRelatedQuestionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRelatedQuestionsResponse) ProtoMessage() {} + +func (x *ListRelatedQuestionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRelatedQuestionsResponse.ProtoReflect.Descriptor instead. +func (*ListRelatedQuestionsResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{22} +} + +func (x *ListRelatedQuestionsResponse) GetList() []*ListRelatedQuestionsResponseItem { + if x != nil { + return x.List + } + return nil +} + +// +type SearchQuestionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keyword string `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *SearchQuestionRequest) Reset() { + *x = SearchQuestionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchQuestionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchQuestionRequest) ProtoMessage() {} + +func (x *SearchQuestionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchQuestionRequest.ProtoReflect.Descriptor instead. +func (*SearchQuestionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{23} +} + +func (x *SearchQuestionRequest) GetKeyword() string { + if x != nil { + return x.Keyword + } + return "" +} + +func (x *SearchQuestionRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +type SearchQuestionResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + UserLogo string `protobuf:"bytes,2,opt,name=userLogo,proto3" json:"userLogo,omitempty"` + UserName string `protobuf:"bytes,4,opt,name=userName,proto3" json:"userName,omitempty"` + Title string `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` + Url string `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"` + PostTime string `protobuf:"bytes,7,opt,name=postTime,proto3" json:"postTime,omitempty"` + City string `protobuf:"bytes,9,opt,name=city,proto3" json:"city,omitempty"` + CityUrl string `protobuf:"bytes,10,opt,name=cityUrl,proto3" json:"cityUrl,omitempty"` + Category string `protobuf:"bytes,11,opt,name=category,proto3" json:"category,omitempty"` + CategoryUrl string `protobuf:"bytes,12,opt,name=categoryUrl,proto3" json:"categoryUrl,omitempty"` + AnswerCount int32 `protobuf:"varint,13,opt,name=answerCount,proto3" json:"answerCount,omitempty"` + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` +} + +func (x *SearchQuestionResponseItem) Reset() { + *x = SearchQuestionResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchQuestionResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchQuestionResponseItem) ProtoMessage() {} + +func (x *SearchQuestionResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchQuestionResponseItem.ProtoReflect.Descriptor instead. +func (*SearchQuestionResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{24} +} + +func (x *SearchQuestionResponseItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *SearchQuestionResponseItem) GetUserLogo() string { + if x != nil { + return x.UserLogo + } + return "" +} + +func (x *SearchQuestionResponseItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *SearchQuestionResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *SearchQuestionResponseItem) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *SearchQuestionResponseItem) GetPostTime() string { + if x != nil { + return x.PostTime + } + return "" +} + +func (x *SearchQuestionResponseItem) GetCity() string { + if x != nil { + return x.City + } + return "" +} + +func (x *SearchQuestionResponseItem) GetCityUrl() string { + if x != nil { + return x.CityUrl + } + return "" +} + +func (x *SearchQuestionResponseItem) GetCategory() string { + if x != nil { + return x.Category + } + return "" +} + +func (x *SearchQuestionResponseItem) GetCategoryUrl() string { + if x != nil { + return x.CategoryUrl + } + return "" +} + +func (x *SearchQuestionResponseItem) GetAnswerCount() int32 { + if x != nil { + return x.AnswerCount + } + return 0 +} + +func (x *SearchQuestionResponseItem) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +type SearchQuestionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*SearchQuestionResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *SearchQuestionResponse) Reset() { + *x = SearchQuestionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchQuestionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchQuestionResponse) ProtoMessage() {} + +func (x *SearchQuestionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SearchQuestionResponse.ProtoReflect.Descriptor instead. +func (*SearchQuestionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{25} +} + +func (x *SearchQuestionResponse) GetList() []*SearchQuestionResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *SearchQuestionResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +// +type QuestionDetailPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AliasKey string `protobuf:"bytes,1,opt,name=aliasKey,proto3" json:"aliasKey,omitempty"` + NodeId int32 `protobuf:"varint,2,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *QuestionDetailPageRequest) Reset() { + *x = QuestionDetailPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuestionDetailPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuestionDetailPageRequest) ProtoMessage() {} + +func (x *QuestionDetailPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QuestionDetailPageRequest.ProtoReflect.Descriptor instead. +func (*QuestionDetailPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{26} +} + +func (x *QuestionDetailPageRequest) GetAliasKey() string { + if x != nil { + return x.AliasKey + } + return "" +} + +func (x *QuestionDetailPageRequest) GetNodeId() int32 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *QuestionDetailPageRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +type QuestionDetailPageResponseItemVote struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Good int32 `protobuf:"varint,1,opt,name=good,proto3" json:"good,omitempty"` + Bad int32 `protobuf:"varint,2,opt,name=bad,proto3" json:"bad,omitempty"` + Vote int32 `protobuf:"varint,3,opt,name=vote,proto3" json:"vote,omitempty"` + // 0没有点赞 点赞过 1 good 2 bad + Status int32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *QuestionDetailPageResponseItemVote) Reset() { + *x = QuestionDetailPageResponseItemVote{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuestionDetailPageResponseItemVote) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuestionDetailPageResponseItemVote) ProtoMessage() {} + +func (x *QuestionDetailPageResponseItemVote) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QuestionDetailPageResponseItemVote.ProtoReflect.Descriptor instead. +func (*QuestionDetailPageResponseItemVote) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{27} +} + +func (x *QuestionDetailPageResponseItemVote) GetGood() int32 { + if x != nil { + return x.Good + } + return 0 +} + +func (x *QuestionDetailPageResponseItemVote) GetBad() int32 { + if x != nil { + return x.Bad + } + return 0 +} + +func (x *QuestionDetailPageResponseItemVote) GetVote() int32 { + if x != nil { + return x.Vote + } + return 0 +} + +func (x *QuestionDetailPageResponseItemVote) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +type QuestionDetailPageResponseItemUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Logo string `protobuf:"bytes,1,opt,name=logo,proto3" json:"logo,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + PostNum int32 `protobuf:"varint,3,opt,name=postNum,proto3" json:"postNum,omitempty"` + Level int32 `protobuf:"varint,4,opt,name=level,proto3" json:"level,omitempty"` + UserId int32 `protobuf:"varint,5,opt,name=userId,proto3" json:"userId,omitempty"` + IsAnonymous bool `protobuf:"varint,6,opt,name=isAnonymous,proto3" json:"isAnonymous,omitempty"` + Signature string `protobuf:"bytes,7,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (x *QuestionDetailPageResponseItemUser) Reset() { + *x = QuestionDetailPageResponseItemUser{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuestionDetailPageResponseItemUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuestionDetailPageResponseItemUser) ProtoMessage() {} + +func (x *QuestionDetailPageResponseItemUser) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QuestionDetailPageResponseItemUser.ProtoReflect.Descriptor instead. +func (*QuestionDetailPageResponseItemUser) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{28} +} + +func (x *QuestionDetailPageResponseItemUser) GetLogo() string { + if x != nil { + return x.Logo + } + return "" +} + +func (x *QuestionDetailPageResponseItemUser) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *QuestionDetailPageResponseItemUser) GetPostNum() int32 { + if x != nil { + return x.PostNum + } + return 0 +} + +func (x *QuestionDetailPageResponseItemUser) GetLevel() int32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *QuestionDetailPageResponseItemUser) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *QuestionDetailPageResponseItemUser) GetIsAnonymous() bool { + if x != nil { + return x.IsAnonymous + } + return false +} + +func (x *QuestionDetailPageResponseItemUser) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +type QuestionDetailPageResponseItemQuestionItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Forbidden bool `protobuf:"varint,1,opt,name=forbidden,proto3" json:"forbidden,omitempty"` + City string `protobuf:"bytes,2,opt,name=city,proto3" json:"city,omitempty"` + CityUrl string `protobuf:"bytes,3,opt,name=cityUrl,proto3" json:"cityUrl,omitempty"` + Category string `protobuf:"bytes,4,opt,name=category,proto3" json:"category,omitempty"` + CategoryUrl string `protobuf:"bytes,5,opt,name=categoryUrl,proto3" json:"categoryUrl,omitempty"` + Title string `protobuf:"bytes,6,opt,name=title,proto3" json:"title,omitempty"` + CityId int32 `protobuf:"varint,7,opt,name=cityId,proto3" json:"cityId,omitempty"` + CategoryId int32 `protobuf:"varint,8,opt,name=categoryId,proto3" json:"categoryId,omitempty"` +} + +func (x *QuestionDetailPageResponseItemQuestionItem) Reset() { + *x = QuestionDetailPageResponseItemQuestionItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuestionDetailPageResponseItemQuestionItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuestionDetailPageResponseItemQuestionItem) ProtoMessage() {} + +func (x *QuestionDetailPageResponseItemQuestionItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QuestionDetailPageResponseItemQuestionItem.ProtoReflect.Descriptor instead. +func (*QuestionDetailPageResponseItemQuestionItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{29} +} + +func (x *QuestionDetailPageResponseItemQuestionItem) GetForbidden() bool { + if x != nil { + return x.Forbidden + } + return false +} + +func (x *QuestionDetailPageResponseItemQuestionItem) GetCity() string { + if x != nil { + return x.City + } + return "" +} + +func (x *QuestionDetailPageResponseItemQuestionItem) GetCityUrl() string { + if x != nil { + return x.CityUrl + } + return "" +} + +func (x *QuestionDetailPageResponseItemQuestionItem) GetCategory() string { + if x != nil { + return x.Category + } + return "" +} + +func (x *QuestionDetailPageResponseItemQuestionItem) GetCategoryUrl() string { + if x != nil { + return x.CategoryUrl + } + return "" +} + +func (x *QuestionDetailPageResponseItemQuestionItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *QuestionDetailPageResponseItemQuestionItem) GetCityId() int32 { + if x != nil { + return x.CityId + } + return 0 +} + +func (x *QuestionDetailPageResponseItemQuestionItem) GetCategoryId() int32 { + if x != nil { + return x.CategoryId + } + return 0 +} + +type QuestionDetailPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + CanManage bool `protobuf:"varint,2,opt,name=canManage,proto3" json:"canManage,omitempty"` + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` + IsDel bool `protobuf:"varint,4,opt,name=isDel,proto3" json:"isDel,omitempty"` + PostTime string `protobuf:"bytes,5,opt,name=postTime,proto3" json:"postTime,omitempty"` + CommentNum int32 `protobuf:"varint,6,opt,name=commentNum,proto3" json:"commentNum,omitempty"` + Vote *QuestionDetailPageResponseItemVote `protobuf:"bytes,7,opt,name=vote,proto3" json:"vote,omitempty"` + User *QuestionDetailPageResponseItemUser `protobuf:"bytes,8,opt,name=user,proto3" json:"user,omitempty"` + Question *QuestionDetailPageResponseItemQuestionItem `protobuf:"bytes,9,opt,name=question,proto3" json:"question,omitempty"` + Comments []*QuestionDetailPageResponseItem `protobuf:"bytes,10,rep,name=comments,proto3" json:"comments,omitempty"` +} + +func (x *QuestionDetailPageResponseItem) Reset() { + *x = QuestionDetailPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuestionDetailPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuestionDetailPageResponseItem) ProtoMessage() {} + +func (x *QuestionDetailPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QuestionDetailPageResponseItem.ProtoReflect.Descriptor instead. +func (*QuestionDetailPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{30} +} + +func (x *QuestionDetailPageResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *QuestionDetailPageResponseItem) GetCanManage() bool { + if x != nil { + return x.CanManage + } + return false +} + +func (x *QuestionDetailPageResponseItem) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *QuestionDetailPageResponseItem) GetIsDel() bool { + if x != nil { + return x.IsDel + } + return false +} + +func (x *QuestionDetailPageResponseItem) GetPostTime() string { + if x != nil { + return x.PostTime + } + return "" +} + +func (x *QuestionDetailPageResponseItem) GetCommentNum() int32 { + if x != nil { + return x.CommentNum + } + return 0 +} + +func (x *QuestionDetailPageResponseItem) GetVote() *QuestionDetailPageResponseItemVote { + if x != nil { + return x.Vote + } + return nil +} + +func (x *QuestionDetailPageResponseItem) GetUser() *QuestionDetailPageResponseItemUser { + if x != nil { + return x.User + } + return nil +} + +func (x *QuestionDetailPageResponseItem) GetQuestion() *QuestionDetailPageResponseItemQuestionItem { + if x != nil { + return x.Question + } + return nil +} + +func (x *QuestionDetailPageResponseItem) GetComments() []*QuestionDetailPageResponseItem { + if x != nil { + return x.Comments + } + return nil +} + +type QuestionDetailPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Question *QuestionDetailPageResponseItem `protobuf:"bytes,1,opt,name=question,proto3" json:"question,omitempty"` + HighestVoted *QuestionDetailPageResponseItem `protobuf:"bytes,2,opt,name=highestVoted,proto3" json:"highestVoted,omitempty"` + Answers []*QuestionDetailPageResponseItem `protobuf:"bytes,3,rep,name=answers,proto3" json:"answers,omitempty"` + AnswerCount int32 `protobuf:"varint,4,opt,name=answerCount,proto3" json:"answerCount,omitempty"` + CommentCount int32 `protobuf:"varint,5,opt,name=commentCount,proto3" json:"commentCount,omitempty"` +} + +func (x *QuestionDetailPageResponse) Reset() { + *x = QuestionDetailPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuestionDetailPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuestionDetailPageResponse) ProtoMessage() {} + +func (x *QuestionDetailPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QuestionDetailPageResponse.ProtoReflect.Descriptor instead. +func (*QuestionDetailPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{31} +} + +func (x *QuestionDetailPageResponse) GetQuestion() *QuestionDetailPageResponseItem { + if x != nil { + return x.Question + } + return nil +} + +func (x *QuestionDetailPageResponse) GetHighestVoted() *QuestionDetailPageResponseItem { + if x != nil { + return x.HighestVoted + } + return nil +} + +func (x *QuestionDetailPageResponse) GetAnswers() []*QuestionDetailPageResponseItem { + if x != nil { + return x.Answers + } + return nil +} + +func (x *QuestionDetailPageResponse) GetAnswerCount() int32 { + if x != nil { + return x.AnswerCount + } + return 0 +} + +func (x *QuestionDetailPageResponse) GetCommentCount() int32 { + if x != nil { + return x.CommentCount + } + return 0 +} + +type UserCenterProfilePageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + QuestionPage int32 `protobuf:"varint,2,opt,name=questionPage,proto3" json:"questionPage,omitempty"` + AnswerPage int32 `protobuf:"varint,3,opt,name=answerPage,proto3" json:"answerPage,omitempty"` +} + +func (x *UserCenterProfilePageRequest) Reset() { + *x = UserCenterProfilePageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterProfilePageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterProfilePageRequest) ProtoMessage() {} + +func (x *UserCenterProfilePageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterProfilePageRequest.ProtoReflect.Descriptor instead. +func (*UserCenterProfilePageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{32} +} + +func (x *UserCenterProfilePageRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UserCenterProfilePageRequest) GetQuestionPage() int32 { + if x != nil { + return x.QuestionPage + } + return 0 +} + +func (x *UserCenterProfilePageRequest) GetAnswerPage() int32 { + if x != nil { + return x.AnswerPage + } + return 0 +} + +type UserCenterProfilePageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + PostTime string `protobuf:"bytes,2,opt,name=postTime,proto3" json:"postTime,omitempty"` + AnswerNum string `protobuf:"bytes,3,opt,name=answerNum,proto3" json:"answerNum,omitempty"` + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"` + IsDel bool `protobuf:"varint,5,opt,name=isDel,proto3" json:"isDel,omitempty"` +} + +func (x *UserCenterProfilePageResponseItem) Reset() { + *x = UserCenterProfilePageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterProfilePageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterProfilePageResponseItem) ProtoMessage() {} + +func (x *UserCenterProfilePageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterProfilePageResponseItem.ProtoReflect.Descriptor instead. +func (*UserCenterProfilePageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{33} +} + +func (x *UserCenterProfilePageResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *UserCenterProfilePageResponseItem) GetPostTime() string { + if x != nil { + return x.PostTime + } + return "" +} + +func (x *UserCenterProfilePageResponseItem) GetAnswerNum() string { + if x != nil { + return x.AnswerNum + } + return "" +} + +func (x *UserCenterProfilePageResponseItem) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *UserCenterProfilePageResponseItem) GetIsDel() bool { + if x != nil { + return x.IsDel + } + return false +} + +type UserCenterProfilePageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Online bool `protobuf:"varint,1,opt,name=online,proto3" json:"online,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + Photo string `protobuf:"bytes,3,opt,name=photo,proto3" json:"photo,omitempty"` + Point int32 `protobuf:"varint,4,opt,name=point,proto3" json:"point,omitempty"` + RegisterTime string `protobuf:"bytes,5,opt,name=registerTime,proto3" json:"registerTime,omitempty"` + UserLevel int32 `protobuf:"varint,6,opt,name=userLevel,proto3" json:"userLevel,omitempty"` + AboutMe string `protobuf:"bytes,7,opt,name=aboutMe,proto3" json:"aboutMe,omitempty"` + Interests string `protobuf:"bytes,8,opt,name=interests,proto3" json:"interests,omitempty"` + Skype string `protobuf:"bytes,9,opt,name=skype,proto3" json:"skype,omitempty"` + Email string `protobuf:"bytes,10,opt,name=email,proto3" json:"email,omitempty"` + Google string `protobuf:"bytes,11,opt,name=google,proto3" json:"google,omitempty"` + QuestionCount int32 `protobuf:"varint,12,opt,name=questionCount,proto3" json:"questionCount,omitempty"` + Questions []*UserCenterProfilePageResponseItem `protobuf:"bytes,13,rep,name=questions,proto3" json:"questions,omitempty"` + AnswerCount int32 `protobuf:"varint,14,opt,name=answerCount,proto3" json:"answerCount,omitempty"` + Answers []*UserCenterProfilePageResponseItem `protobuf:"bytes,15,rep,name=answers,proto3" json:"answers,omitempty"` +} + +func (x *UserCenterProfilePageResponse) Reset() { + *x = UserCenterProfilePageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterProfilePageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterProfilePageResponse) ProtoMessage() {} + +func (x *UserCenterProfilePageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterProfilePageResponse.ProtoReflect.Descriptor instead. +func (*UserCenterProfilePageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{34} +} + +func (x *UserCenterProfilePageResponse) GetOnline() bool { + if x != nil { + return x.Online + } + return false +} + +func (x *UserCenterProfilePageResponse) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *UserCenterProfilePageResponse) GetPhoto() string { + if x != nil { + return x.Photo + } + return "" +} + +func (x *UserCenterProfilePageResponse) GetPoint() int32 { + if x != nil { + return x.Point + } + return 0 +} + +func (x *UserCenterProfilePageResponse) GetRegisterTime() string { + if x != nil { + return x.RegisterTime + } + return "" +} + +func (x *UserCenterProfilePageResponse) GetUserLevel() int32 { + if x != nil { + return x.UserLevel + } + return 0 +} + +func (x *UserCenterProfilePageResponse) GetAboutMe() string { + if x != nil { + return x.AboutMe + } + return "" +} + +func (x *UserCenterProfilePageResponse) GetInterests() string { + if x != nil { + return x.Interests + } + return "" +} + +func (x *UserCenterProfilePageResponse) GetSkype() string { + if x != nil { + return x.Skype + } + return "" +} + +func (x *UserCenterProfilePageResponse) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *UserCenterProfilePageResponse) GetGoogle() string { + if x != nil { + return x.Google + } + return "" +} + +func (x *UserCenterProfilePageResponse) GetQuestionCount() int32 { + if x != nil { + return x.QuestionCount + } + return 0 +} + +func (x *UserCenterProfilePageResponse) GetQuestions() []*UserCenterProfilePageResponseItem { + if x != nil { + return x.Questions + } + return nil +} + +func (x *UserCenterProfilePageResponse) GetAnswerCount() int32 { + if x != nil { + return x.AnswerCount + } + return 0 +} + +func (x *UserCenterProfilePageResponse) GetAnswers() []*UserCenterProfilePageResponseItem { + if x != nil { + return x.Answers + } + return nil +} + +type UserCenterEditPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` +} + +func (x *UserCenterEditPageRequest) Reset() { + *x = UserCenterEditPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterEditPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterEditPageRequest) ProtoMessage() {} + +func (x *UserCenterEditPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterEditPageRequest.ProtoReflect.Descriptor instead. +func (*UserCenterEditPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{35} +} + +func (x *UserCenterEditPageRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +type UserCenterEditPageData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Signature string `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` + AboutMe string `protobuf:"bytes,2,opt,name=aboutMe,proto3" json:"aboutMe,omitempty"` + Interests string `protobuf:"bytes,3,opt,name=interests,proto3" json:"interests,omitempty"` + Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` + Google string `protobuf:"bytes,6,opt,name=google,proto3" json:"google,omitempty"` + Skype string `protobuf:"bytes,7,opt,name=skype,proto3" json:"skype,omitempty"` + IsPlainText bool `protobuf:"varint,8,opt,name=isPlainText,proto3" json:"isPlainText,omitempty"` + IsNotify bool `protobuf:"varint,9,opt,name=isNotify,proto3" json:"isNotify,omitempty"` + UserId int32 `protobuf:"varint,4,opt,name=userId,proto3" json:"userId,omitempty"` +} + +func (x *UserCenterEditPageData) Reset() { + *x = UserCenterEditPageData{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterEditPageData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterEditPageData) ProtoMessage() {} + +func (x *UserCenterEditPageData) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterEditPageData.ProtoReflect.Descriptor instead. +func (*UserCenterEditPageData) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{36} +} + +func (x *UserCenterEditPageData) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +func (x *UserCenterEditPageData) GetAboutMe() string { + if x != nil { + return x.AboutMe + } + return "" +} + +func (x *UserCenterEditPageData) GetInterests() string { + if x != nil { + return x.Interests + } + return "" +} + +func (x *UserCenterEditPageData) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *UserCenterEditPageData) GetGoogle() string { + if x != nil { + return x.Google + } + return "" +} + +func (x *UserCenterEditPageData) GetSkype() string { + if x != nil { + return x.Skype + } + return "" +} + +func (x *UserCenterEditPageData) GetIsPlainText() bool { + if x != nil { + return x.IsPlainText + } + return false +} + +func (x *UserCenterEditPageData) GetIsNotify() bool { + if x != nil { + return x.IsNotify + } + return false +} + +func (x *UserCenterEditPageData) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +type UserCenterEditPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *UserCenterEditPageData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *UserCenterEditPageResponse) Reset() { + *x = UserCenterEditPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterEditPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterEditPageResponse) ProtoMessage() {} + +func (x *UserCenterEditPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterEditPageResponse.ProtoReflect.Descriptor instead. +func (*UserCenterEditPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{37} +} + +func (x *UserCenterEditPageResponse) GetData() *UserCenterEditPageData { + if x != nil { + return x.Data + } + return nil +} + +type UserCenterEditRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *UserCenterEditPageData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + UserId int32 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` +} + +func (x *UserCenterEditRequest) Reset() { + *x = UserCenterEditRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterEditRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterEditRequest) ProtoMessage() {} + +func (x *UserCenterEditRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterEditRequest.ProtoReflect.Descriptor instead. +func (*UserCenterEditRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{38} +} + +func (x *UserCenterEditRequest) GetData() *UserCenterEditPageData { + if x != nil { + return x.Data + } + return nil +} + +func (x *UserCenterEditRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +type UserCenterEditResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UserCenterEditResponse) Reset() { + *x = UserCenterEditResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterEditResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterEditResponse) ProtoMessage() {} + +func (x *UserCenterEditResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterEditResponse.ProtoReflect.Descriptor instead. +func (*UserCenterEditResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{39} +} + +// +type UserCenterInBoxPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *UserCenterInBoxPageRequest) Reset() { + *x = UserCenterInBoxPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterInBoxPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterInBoxPageRequest) ProtoMessage() {} + +func (x *UserCenterInBoxPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterInBoxPageRequest.ProtoReflect.Descriptor instead. +func (*UserCenterInBoxPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{40} +} + +func (x *UserCenterInBoxPageRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UserCenterInBoxPageRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +type UserCenterInBoxPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + UserId int32 `protobuf:"varint,3,opt,name=userId,proto3" json:"userId,omitempty"` + IsNew bool `protobuf:"varint,4,opt,name=isNew,proto3" json:"isNew,omitempty"` + Subject string `protobuf:"bytes,5,opt,name=subject,proto3" json:"subject,omitempty"` + LastTime string `protobuf:"bytes,6,opt,name=lastTime,proto3" json:"lastTime,omitempty"` +} + +func (x *UserCenterInBoxPageResponseItem) Reset() { + *x = UserCenterInBoxPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterInBoxPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterInBoxPageResponseItem) ProtoMessage() {} + +func (x *UserCenterInBoxPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterInBoxPageResponseItem.ProtoReflect.Descriptor instead. +func (*UserCenterInBoxPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{41} +} + +func (x *UserCenterInBoxPageResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UserCenterInBoxPageResponseItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *UserCenterInBoxPageResponseItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UserCenterInBoxPageResponseItem) GetIsNew() bool { + if x != nil { + return x.IsNew + } + return false +} + +func (x *UserCenterInBoxPageResponseItem) GetSubject() string { + if x != nil { + return x.Subject + } + return "" +} + +func (x *UserCenterInBoxPageResponseItem) GetLastTime() string { + if x != nil { + return x.LastTime + } + return "" +} + +type UserCenterInBoxPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*UserCenterInBoxPageResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *UserCenterInBoxPageResponse) Reset() { + *x = UserCenterInBoxPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterInBoxPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterInBoxPageResponse) ProtoMessage() {} + +func (x *UserCenterInBoxPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterInBoxPageResponse.ProtoReflect.Descriptor instead. +func (*UserCenterInBoxPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{42} +} + +func (x *UserCenterInBoxPageResponse) GetList() []*UserCenterInBoxPageResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *UserCenterInBoxPageResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +// +type DeleteInboxRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + Ids []int32 `protobuf:"varint,2,rep,packed,name=ids,proto3" json:"ids,omitempty"` +} + +func (x *DeleteInboxRequest) Reset() { + *x = DeleteInboxRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteInboxRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteInboxRequest) ProtoMessage() {} + +func (x *DeleteInboxRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteInboxRequest.ProtoReflect.Descriptor instead. +func (*DeleteInboxRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{43} +} + +func (x *DeleteInboxRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *DeleteInboxRequest) GetIds() []int32 { + if x != nil { + return x.Ids + } + return nil +} + +type DeleteInboxResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteInboxResponse) Reset() { + *x = DeleteInboxResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteInboxResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteInboxResponse) ProtoMessage() {} + +func (x *DeleteInboxResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteInboxResponse.ProtoReflect.Descriptor instead. +func (*DeleteInboxResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{44} +} + +type MessageSendRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserIds []int32 `protobuf:"varint,1,rep,packed,name=userIds,proto3" json:"userIds,omitempty"` + Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` + //消息ThreadId + ThreadId int32 `protobuf:"varint,4,opt,name=threadId,proto3" json:"threadId,omitempty"` +} + +func (x *MessageSendRequest) Reset() { + *x = MessageSendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageSendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageSendRequest) ProtoMessage() {} + +func (x *MessageSendRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageSendRequest.ProtoReflect.Descriptor instead. +func (*MessageSendRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{45} +} + +func (x *MessageSendRequest) GetUserIds() []int32 { + if x != nil { + return x.UserIds + } + return nil +} + +func (x *MessageSendRequest) GetSubject() string { + if x != nil { + return x.Subject + } + return "" +} + +func (x *MessageSendRequest) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *MessageSendRequest) GetThreadId() int32 { + if x != nil { + return x.ThreadId + } + return 0 +} + +type MessageSendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *MessageSendResponse) Reset() { + *x = MessageSendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageSendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageSendResponse) ProtoMessage() {} + +func (x *MessageSendResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageSendResponse.ProtoReflect.Descriptor instead. +func (*MessageSendResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{46} +} + +func (x *MessageSendResponse) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type MessageDetailPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MessageId int32 `protobuf:"varint,1,opt,name=messageId,proto3" json:"messageId,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *MessageDetailPageRequest) Reset() { + *x = MessageDetailPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageDetailPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageDetailPageRequest) ProtoMessage() {} + +func (x *MessageDetailPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageDetailPageRequest.ProtoReflect.Descriptor instead. +func (*MessageDetailPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{47} +} + +func (x *MessageDetailPageRequest) GetMessageId() int32 { + if x != nil { + return x.MessageId + } + return 0 +} + +func (x *MessageDetailPageRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +type MessageDetailPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + Photo string `protobuf:"bytes,2,opt,name=photo,proto3" json:"photo,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=userName,proto3" json:"userName,omitempty"` + PostTime string `protobuf:"bytes,4,opt,name=postTime,proto3" json:"postTime,omitempty"` + Id int32 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"` + Content string `protobuf:"bytes,6,opt,name=content,proto3" json:"content,omitempty"` + IsNew bool `protobuf:"varint,7,opt,name=isNew,proto3" json:"isNew,omitempty"` +} + +func (x *MessageDetailPageResponseItem) Reset() { + *x = MessageDetailPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageDetailPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageDetailPageResponseItem) ProtoMessage() {} + +func (x *MessageDetailPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageDetailPageResponseItem.ProtoReflect.Descriptor instead. +func (*MessageDetailPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{48} +} + +func (x *MessageDetailPageResponseItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *MessageDetailPageResponseItem) GetPhoto() string { + if x != nil { + return x.Photo + } + return "" +} + +func (x *MessageDetailPageResponseItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *MessageDetailPageResponseItem) GetPostTime() string { + if x != nil { + return x.PostTime + } + return "" +} + +func (x *MessageDetailPageResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *MessageDetailPageResponseItem) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *MessageDetailPageResponseItem) GetIsNew() bool { + if x != nil { + return x.IsNew + } + return false +} + +type MessageDetailPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*MessageDetailPageResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + FromName string `protobuf:"bytes,2,opt,name=fromName,proto3" json:"fromName,omitempty"` + Count int32 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"` + ThreadId int32 `protobuf:"varint,4,opt,name=threadId,proto3" json:"threadId,omitempty"` +} + +func (x *MessageDetailPageResponse) Reset() { + *x = MessageDetailPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageDetailPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageDetailPageResponse) ProtoMessage() {} + +func (x *MessageDetailPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageDetailPageResponse.ProtoReflect.Descriptor instead. +func (*MessageDetailPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{49} +} + +func (x *MessageDetailPageResponse) GetList() []*MessageDetailPageResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *MessageDetailPageResponse) GetFromName() string { + if x != nil { + return x.FromName + } + return "" +} + +func (x *MessageDetailPageResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *MessageDetailPageResponse) GetThreadId() int32 { + if x != nil { + return x.ThreadId + } + return 0 +} + +type UserCenterPointsPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *UserCenterPointsPageRequest) Reset() { + *x = UserCenterPointsPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterPointsPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterPointsPageRequest) ProtoMessage() {} + +func (x *UserCenterPointsPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterPointsPageRequest.ProtoReflect.Descriptor instead. +func (*UserCenterPointsPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{50} +} + +func (x *UserCenterPointsPageRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UserCenterPointsPageRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +type UserCenterPointsPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Point int32 `protobuf:"varint,1,opt,name=point,proto3" json:"point,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + DoTime string `protobuf:"bytes,3,opt,name=doTime,proto3" json:"doTime,omitempty"` + PointType string `protobuf:"bytes,4,opt,name=pointType,proto3" json:"pointType,omitempty"` + Id int32 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *UserCenterPointsPageResponseItem) Reset() { + *x = UserCenterPointsPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterPointsPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterPointsPageResponseItem) ProtoMessage() {} + +func (x *UserCenterPointsPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterPointsPageResponseItem.ProtoReflect.Descriptor instead. +func (*UserCenterPointsPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{51} +} + +func (x *UserCenterPointsPageResponseItem) GetPoint() int32 { + if x != nil { + return x.Point + } + return 0 +} + +func (x *UserCenterPointsPageResponseItem) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *UserCenterPointsPageResponseItem) GetDoTime() string { + if x != nil { + return x.DoTime + } + return "" +} + +func (x *UserCenterPointsPageResponseItem) GetPointType() string { + if x != nil { + return x.PointType + } + return "" +} + +func (x *UserCenterPointsPageResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type UserCenterPointsPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*UserCenterPointsPageResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` + AllPoints int32 `protobuf:"varint,3,opt,name=allPoints,proto3" json:"allPoints,omitempty"` +} + +func (x *UserCenterPointsPageResponse) Reset() { + *x = UserCenterPointsPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterPointsPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterPointsPageResponse) ProtoMessage() {} + +func (x *UserCenterPointsPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterPointsPageResponse.ProtoReflect.Descriptor instead. +func (*UserCenterPointsPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{52} +} + +func (x *UserCenterPointsPageResponse) GetList() []*UserCenterPointsPageResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *UserCenterPointsPageResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *UserCenterPointsPageResponse) GetAllPoints() int32 { + if x != nil { + return x.AllPoints + } + return 0 +} + +type UserCenterNewAnswersPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *UserCenterNewAnswersPageRequest) Reset() { + *x = UserCenterNewAnswersPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterNewAnswersPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterNewAnswersPageRequest) ProtoMessage() {} + +func (x *UserCenterNewAnswersPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterNewAnswersPageRequest.ProtoReflect.Descriptor instead. +func (*UserCenterNewAnswersPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{53} +} + +func (x *UserCenterNewAnswersPageRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UserCenterNewAnswersPageRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +type UserCenterNewAnswersPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + Logo string `protobuf:"bytes,3,opt,name=logo,proto3" json:"logo,omitempty"` + Answer string `protobuf:"bytes,4,opt,name=answer,proto3" json:"answer,omitempty"` + AnswerTime string `protobuf:"bytes,5,opt,name=answerTime,proto3" json:"answerTime,omitempty"` + AnswerUrl string `protobuf:"bytes,6,opt,name=answerUrl,proto3" json:"answerUrl,omitempty"` + QuestionUrl string `protobuf:"bytes,7,opt,name=questionUrl,proto3" json:"questionUrl,omitempty"` + Question string `protobuf:"bytes,8,opt,name=question,proto3" json:"question,omitempty"` + Id int32 `protobuf:"varint,9,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *UserCenterNewAnswersPageResponseItem) Reset() { + *x = UserCenterNewAnswersPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterNewAnswersPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterNewAnswersPageResponseItem) ProtoMessage() {} + +func (x *UserCenterNewAnswersPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterNewAnswersPageResponseItem.ProtoReflect.Descriptor instead. +func (*UserCenterNewAnswersPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{54} +} + +func (x *UserCenterNewAnswersPageResponseItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UserCenterNewAnswersPageResponseItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *UserCenterNewAnswersPageResponseItem) GetLogo() string { + if x != nil { + return x.Logo + } + return "" +} + +func (x *UserCenterNewAnswersPageResponseItem) GetAnswer() string { + if x != nil { + return x.Answer + } + return "" +} + +func (x *UserCenterNewAnswersPageResponseItem) GetAnswerTime() string { + if x != nil { + return x.AnswerTime + } + return "" +} + +func (x *UserCenterNewAnswersPageResponseItem) GetAnswerUrl() string { + if x != nil { + return x.AnswerUrl + } + return "" +} + +func (x *UserCenterNewAnswersPageResponseItem) GetQuestionUrl() string { + if x != nil { + return x.QuestionUrl + } + return "" +} + +func (x *UserCenterNewAnswersPageResponseItem) GetQuestion() string { + if x != nil { + return x.Question + } + return "" +} + +func (x *UserCenterNewAnswersPageResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type UserCenterNewAnswersPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*UserCenterNewAnswersPageResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *UserCenterNewAnswersPageResponse) Reset() { + *x = UserCenterNewAnswersPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterNewAnswersPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterNewAnswersPageResponse) ProtoMessage() {} + +func (x *UserCenterNewAnswersPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterNewAnswersPageResponse.ProtoReflect.Descriptor instead. +func (*UserCenterNewAnswersPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{55} +} + +func (x *UserCenterNewAnswersPageResponse) GetList() []*UserCenterNewAnswersPageResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *UserCenterNewAnswersPageResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +type UserCenterNewCommentsPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + UserId int32 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` +} + +func (x *UserCenterNewCommentsPageRequest) Reset() { + *x = UserCenterNewCommentsPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterNewCommentsPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterNewCommentsPageRequest) ProtoMessage() {} + +func (x *UserCenterNewCommentsPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterNewCommentsPageRequest.ProtoReflect.Descriptor instead. +func (*UserCenterNewCommentsPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{56} +} + +func (x *UserCenterNewCommentsPageRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *UserCenterNewCommentsPageRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +type UserCenterNewCommentsPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + Logo string `protobuf:"bytes,3,opt,name=logo,proto3" json:"logo,omitempty"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` + CommentTime string `protobuf:"bytes,5,opt,name=commentTime,proto3" json:"commentTime,omitempty"` + CommentUrl string `protobuf:"bytes,6,opt,name=commentUrl,proto3" json:"commentUrl,omitempty"` + Answer string `protobuf:"bytes,7,opt,name=answer,proto3" json:"answer,omitempty"` + AnswerUrl string `protobuf:"bytes,8,opt,name=answerUrl,proto3" json:"answerUrl,omitempty"` + AnsweredId int32 `protobuf:"varint,9,opt,name=answeredId,proto3" json:"answeredId,omitempty"` + Id int32 `protobuf:"varint,10,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *UserCenterNewCommentsPageResponseItem) Reset() { + *x = UserCenterNewCommentsPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterNewCommentsPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterNewCommentsPageResponseItem) ProtoMessage() {} + +func (x *UserCenterNewCommentsPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterNewCommentsPageResponseItem.ProtoReflect.Descriptor instead. +func (*UserCenterNewCommentsPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{57} +} + +func (x *UserCenterNewCommentsPageResponseItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *UserCenterNewCommentsPageResponseItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *UserCenterNewCommentsPageResponseItem) GetLogo() string { + if x != nil { + return x.Logo + } + return "" +} + +func (x *UserCenterNewCommentsPageResponseItem) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *UserCenterNewCommentsPageResponseItem) GetCommentTime() string { + if x != nil { + return x.CommentTime + } + return "" +} + +func (x *UserCenterNewCommentsPageResponseItem) GetCommentUrl() string { + if x != nil { + return x.CommentUrl + } + return "" +} + +func (x *UserCenterNewCommentsPageResponseItem) GetAnswer() string { + if x != nil { + return x.Answer + } + return "" +} + +func (x *UserCenterNewCommentsPageResponseItem) GetAnswerUrl() string { + if x != nil { + return x.AnswerUrl + } + return "" +} + +func (x *UserCenterNewCommentsPageResponseItem) GetAnsweredId() int32 { + if x != nil { + return x.AnsweredId + } + return 0 +} + +func (x *UserCenterNewCommentsPageResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type UserCenterNewCommentsPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*UserCenterNewCommentsPageResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *UserCenterNewCommentsPageResponse) Reset() { + *x = UserCenterNewCommentsPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserCenterNewCommentsPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserCenterNewCommentsPageResponse) ProtoMessage() {} + +func (x *UserCenterNewCommentsPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserCenterNewCommentsPageResponse.ProtoReflect.Descriptor instead. +func (*UserCenterNewCommentsPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{58} +} + +func (x *UserCenterNewCommentsPageResponse) GetList() []*UserCenterNewCommentsPageResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *UserCenterNewCommentsPageResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +type CaptchaRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CaptchaRequest) Reset() { + *x = CaptchaRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CaptchaRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CaptchaRequest) ProtoMessage() {} + +func (x *CaptchaRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CaptchaRequest.ProtoReflect.Descriptor instead. +func (*CaptchaRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{59} +} + +type CaptchaResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Val string `protobuf:"bytes,2,opt,name=val,proto3" json:"val,omitempty"` +} + +func (x *CaptchaResponse) Reset() { + *x = CaptchaResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CaptchaResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CaptchaResponse) ProtoMessage() {} + +func (x *CaptchaResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CaptchaResponse.ProtoReflect.Descriptor instead. +func (*CaptchaResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{60} +} + +func (x *CaptchaResponse) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *CaptchaResponse) GetVal() string { + if x != nil { + return x.Val + } + return "" +} + +type NoticesPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *NoticesPageRequest) Reset() { + *x = NoticesPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NoticesPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NoticesPageRequest) ProtoMessage() {} + +func (x *NoticesPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NoticesPageRequest.ProtoReflect.Descriptor instead. +func (*NoticesPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{61} +} + +func (x *NoticesPageRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +type NoticesPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + PostTime string `protobuf:"bytes,2,opt,name=postTime,proto3" json:"postTime,omitempty"` + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` + Id int32 `protobuf:"varint,4,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *NoticesPageResponseItem) Reset() { + *x = NoticesPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NoticesPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NoticesPageResponseItem) ProtoMessage() {} + +func (x *NoticesPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NoticesPageResponseItem.ProtoReflect.Descriptor instead. +func (*NoticesPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{62} +} + +func (x *NoticesPageResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *NoticesPageResponseItem) GetPostTime() string { + if x != nil { + return x.PostTime + } + return "" +} + +func (x *NoticesPageResponseItem) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *NoticesPageResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type NoticesPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*NoticesPageResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *NoticesPageResponse) Reset() { + *x = NoticesPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NoticesPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NoticesPageResponse) ProtoMessage() {} + +func (x *NoticesPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NoticesPageResponse.ProtoReflect.Descriptor instead. +func (*NoticesPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{63} +} + +func (x *NoticesPageResponse) GetList() []*NoticesPageResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *NoticesPageResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +type ForbiddenQuestionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + QuestionId int32 `protobuf:"varint,1,opt,name=questionId,proto3" json:"questionId,omitempty"` + IsForbidden bool `protobuf:"varint,2,opt,name=isForbidden,proto3" json:"isForbidden,omitempty"` +} + +func (x *ForbiddenQuestionRequest) Reset() { + *x = ForbiddenQuestionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ForbiddenQuestionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForbiddenQuestionRequest) ProtoMessage() {} + +func (x *ForbiddenQuestionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ForbiddenQuestionRequest.ProtoReflect.Descriptor instead. +func (*ForbiddenQuestionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{64} +} + +func (x *ForbiddenQuestionRequest) GetQuestionId() int32 { + if x != nil { + return x.QuestionId + } + return 0 +} + +func (x *ForbiddenQuestionRequest) GetIsForbidden() bool { + if x != nil { + return x.IsForbidden + } + return false +} + +type ForbiddenQuestionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsForbidden bool `protobuf:"varint,1,opt,name=isForbidden,proto3" json:"isForbidden,omitempty"` +} + +func (x *ForbiddenQuestionResponse) Reset() { + *x = ForbiddenQuestionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ForbiddenQuestionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForbiddenQuestionResponse) ProtoMessage() {} + +func (x *ForbiddenQuestionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ForbiddenQuestionResponse.ProtoReflect.Descriptor instead. +func (*ForbiddenQuestionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{65} +} + +func (x *ForbiddenQuestionResponse) GetIsForbidden() bool { + if x != nil { + return x.IsForbidden + } + return false +} + +type AddQuestionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` + CategoryId int32 `protobuf:"varint,3,opt,name=categoryId,proto3" json:"categoryId,omitempty"` + CityId int32 `protobuf:"varint,4,opt,name=cityId,proto3" json:"cityId,omitempty"` + Id int32 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"` + UserId int32 `protobuf:"varint,6,opt,name=userId,proto3" json:"userId,omitempty"` +} + +func (x *AddQuestionRequest) Reset() { + *x = AddQuestionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddQuestionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddQuestionRequest) ProtoMessage() {} + +func (x *AddQuestionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddQuestionRequest.ProtoReflect.Descriptor instead. +func (*AddQuestionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{66} +} + +func (x *AddQuestionRequest) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AddQuestionRequest) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *AddQuestionRequest) GetCategoryId() int32 { + if x != nil { + return x.CategoryId + } + return 0 +} + +func (x *AddQuestionRequest) GetCityId() int32 { + if x != nil { + return x.CityId + } + return 0 +} + +func (x *AddQuestionRequest) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AddQuestionRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +type AddQuestionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *AddQuestionResponse) Reset() { + *x = AddQuestionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddQuestionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddQuestionResponse) ProtoMessage() {} + +func (x *AddQuestionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddQuestionResponse.ProtoReflect.Descriptor instead. +func (*AddQuestionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{67} +} + +func (x *AddQuestionResponse) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type GetEditQuestionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nid int32 `protobuf:"varint,1,opt,name=nid,proto3" json:"nid,omitempty"` +} + +func (x *GetEditQuestionRequest) Reset() { + *x = GetEditQuestionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetEditQuestionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetEditQuestionRequest) ProtoMessage() {} + +func (x *GetEditQuestionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetEditQuestionRequest.ProtoReflect.Descriptor instead. +func (*GetEditQuestionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{68} +} + +func (x *GetEditQuestionRequest) GetNid() int32 { + if x != nil { + return x.Nid + } + return 0 +} + +type GetEditQuestionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` + CategoryId int32 `protobuf:"varint,3,opt,name=categoryId,proto3" json:"categoryId,omitempty"` + CityId int32 `protobuf:"varint,4,opt,name=cityId,proto3" json:"cityId,omitempty"` + Id int32 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"` + IsAnswer bool `protobuf:"varint,6,opt,name=isAnswer,proto3" json:"isAnswer,omitempty"` +} + +func (x *GetEditQuestionResponse) Reset() { + *x = GetEditQuestionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetEditQuestionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetEditQuestionResponse) ProtoMessage() {} + +func (x *GetEditQuestionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetEditQuestionResponse.ProtoReflect.Descriptor instead. +func (*GetEditQuestionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{69} +} + +func (x *GetEditQuestionResponse) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *GetEditQuestionResponse) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *GetEditQuestionResponse) GetCategoryId() int32 { + if x != nil { + return x.CategoryId + } + return 0 +} + +func (x *GetEditQuestionResponse) GetCityId() int32 { + if x != nil { + return x.CityId + } + return 0 +} + +func (x *GetEditQuestionResponse) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *GetEditQuestionResponse) GetIsAnswer() bool { + if x != nil { + return x.IsAnswer + } + return false +} + +type EditUserLogoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ImageData string `protobuf:"bytes,1,opt,name=imageData,proto3" json:"imageData,omitempty"` + UserId int32 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` +} + +func (x *EditUserLogoRequest) Reset() { + *x = EditUserLogoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EditUserLogoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EditUserLogoRequest) ProtoMessage() {} + +func (x *EditUserLogoRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EditUserLogoRequest.ProtoReflect.Descriptor instead. +func (*EditUserLogoRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{70} +} + +func (x *EditUserLogoRequest) GetImageData() string { + if x != nil { + return x.ImageData + } + return "" +} + +func (x *EditUserLogoRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +type EditUserLogoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *EditUserLogoResponse) Reset() { + *x = EditUserLogoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EditUserLogoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EditUserLogoResponse) ProtoMessage() {} + +func (x *EditUserLogoResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EditUserLogoResponse.ProtoReflect.Descriptor instead. +func (*EditUserLogoResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{71} +} + +func (x *EditUserLogoResponse) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type DeleteNodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int32 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + ReasonTitle string `protobuf:"bytes,2,opt,name=reasonTitle,proto3" json:"reasonTitle,omitempty"` + ReasonBody string `protobuf:"bytes,3,opt,name=reasonBody,proto3" json:"reasonBody,omitempty"` +} + +func (x *DeleteNodeRequest) Reset() { + *x = DeleteNodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteNodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteNodeRequest) ProtoMessage() {} + +func (x *DeleteNodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteNodeRequest.ProtoReflect.Descriptor instead. +func (*DeleteNodeRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{72} +} + +func (x *DeleteNodeRequest) GetNodeId() int32 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *DeleteNodeRequest) GetReasonTitle() string { + if x != nil { + return x.ReasonTitle + } + return "" +} + +func (x *DeleteNodeRequest) GetReasonBody() string { + if x != nil { + return x.ReasonBody + } + return "" +} + +type DeleteNodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteNodeResponse) Reset() { + *x = DeleteNodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteNodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteNodeResponse) ProtoMessage() {} + +func (x *DeleteNodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteNodeResponse.ProtoReflect.Descriptor instead. +func (*DeleteNodeResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{73} +} + +type ReportRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int32 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` + Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` + CodeKey string `protobuf:"bytes,4,opt,name=codeKey,proto3" json:"codeKey,omitempty"` + Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty"` +} + +func (x *ReportRequest) Reset() { + *x = ReportRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReportRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportRequest) ProtoMessage() {} + +func (x *ReportRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReportRequest.ProtoReflect.Descriptor instead. +func (*ReportRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{74} +} + +func (x *ReportRequest) GetNodeId() int32 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *ReportRequest) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *ReportRequest) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *ReportRequest) GetCodeKey() string { + if x != nil { + return x.CodeKey + } + return "" +} + +func (x *ReportRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +type ReportResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReportResponse) Reset() { + *x = ReportResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReportResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportResponse) ProtoMessage() {} + +func (x *ReportResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[75] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReportResponse.ProtoReflect.Descriptor instead. +func (*ReportResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{75} +} + +type ForwardQuestionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int32 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` + OriginalContent string `protobuf:"bytes,3,opt,name=originalContent,proto3" json:"originalContent,omitempty"` + SendTo string `protobuf:"bytes,4,opt,name=sendTo,proto3" json:"sendTo,omitempty"` +} + +func (x *ForwardQuestionRequest) Reset() { + *x = ForwardQuestionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ForwardQuestionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForwardQuestionRequest) ProtoMessage() {} + +func (x *ForwardQuestionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[76] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ForwardQuestionRequest.ProtoReflect.Descriptor instead. +func (*ForwardQuestionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{76} +} + +func (x *ForwardQuestionRequest) GetNodeId() int32 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *ForwardQuestionRequest) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *ForwardQuestionRequest) GetOriginalContent() string { + if x != nil { + return x.OriginalContent + } + return "" +} + +func (x *ForwardQuestionRequest) GetSendTo() string { + if x != nil { + return x.SendTo + } + return "" +} + +type ForwardQuestionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ForwardQuestionResponse) Reset() { + *x = ForwardQuestionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ForwardQuestionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForwardQuestionResponse) ProtoMessage() {} + +func (x *ForwardQuestionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ForwardQuestionResponse.ProtoReflect.Descriptor instead. +func (*ForwardQuestionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{77} +} + +type AddAnswerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ParentId int32 `protobuf:"varint,2,opt,name=parentId,proto3" json:"parentId,omitempty"` //编辑时不填 + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` + Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"` +} + +func (x *AddAnswerRequest) Reset() { + *x = AddAnswerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddAnswerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddAnswerRequest) ProtoMessage() {} + +func (x *AddAnswerRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[78] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddAnswerRequest.ProtoReflect.Descriptor instead. +func (*AddAnswerRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{78} +} + +func (x *AddAnswerRequest) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AddAnswerRequest) GetParentId() int32 { + if x != nil { + return x.ParentId + } + return 0 +} + +func (x *AddAnswerRequest) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AddAnswerRequest) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +type AddAnswerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AddAnswerResponse) Reset() { + *x = AddAnswerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddAnswerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddAnswerResponse) ProtoMessage() {} + +func (x *AddAnswerResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[79] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddAnswerResponse.ProtoReflect.Descriptor instead. +func (*AddAnswerResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{79} +} + +type VoteNodeGoodRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId int32 `protobuf:"varint,1,opt,name=nodeId,proto3" json:"nodeId,omitempty"` + IsGood bool `protobuf:"varint,2,opt,name=isGood,proto3" json:"isGood,omitempty"` +} + +func (x *VoteNodeGoodRequest) Reset() { + *x = VoteNodeGoodRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VoteNodeGoodRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VoteNodeGoodRequest) ProtoMessage() {} + +func (x *VoteNodeGoodRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[80] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VoteNodeGoodRequest.ProtoReflect.Descriptor instead. +func (*VoteNodeGoodRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{80} +} + +func (x *VoteNodeGoodRequest) GetNodeId() int32 { + if x != nil { + return x.NodeId + } + return 0 +} + +func (x *VoteNodeGoodRequest) GetIsGood() bool { + if x != nil { + return x.IsGood + } + return false +} + +type VoteNodeGoodResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *VoteNodeGoodResponse) Reset() { + *x = VoteNodeGoodResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VoteNodeGoodResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VoteNodeGoodResponse) ProtoMessage() {} + +func (x *VoteNodeGoodResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[81] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VoteNodeGoodResponse.ProtoReflect.Descriptor instead. +func (*VoteNodeGoodResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{81} +} + +type LoginRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LoginType string `protobuf:"bytes,1,opt,name=loginType,proto3" json:"loginType,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` + Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` + Code string `protobuf:"bytes,4,opt,name=code,proto3" json:"code,omitempty"` +} + +func (x *LoginRequest) Reset() { + *x = LoginRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LoginRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LoginRequest) ProtoMessage() {} + +func (x *LoginRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[82] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LoginRequest.ProtoReflect.Descriptor instead. +func (*LoginRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{82} +} + +func (x *LoginRequest) GetLoginType() string { + if x != nil { + return x.LoginType + } + return "" +} + +func (x *LoginRequest) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *LoginRequest) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +func (x *LoginRequest) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +type LoginResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` +} + +func (x *LoginResponse) Reset() { + *x = LoginResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LoginResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LoginResponse) ProtoMessage() {} + +func (x *LoginResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[83] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LoginResponse.ProtoReflect.Descriptor instead. +func (*LoginResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{83} +} + +func (x *LoginResponse) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +type AdminRolesPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AdminRolesPageRequest) Reset() { + *x = AdminRolesPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminRolesPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminRolesPageRequest) ProtoMessage() {} + +func (x *AdminRolesPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminRolesPageRequest.ProtoReflect.Descriptor instead. +func (*AdminRolesPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{84} +} + +type AdminRolesPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Id int32 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + IsBlock bool `protobuf:"varint,3,opt,name=isBlock,proto3" json:"isBlock,omitempty"` +} + +func (x *AdminRolesPageResponseItem) Reset() { + *x = AdminRolesPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminRolesPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminRolesPageResponseItem) ProtoMessage() {} + +func (x *AdminRolesPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[85] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminRolesPageResponseItem.ProtoReflect.Descriptor instead. +func (*AdminRolesPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{85} +} + +func (x *AdminRolesPageResponseItem) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AdminRolesPageResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminRolesPageResponseItem) GetIsBlock() bool { + if x != nil { + return x.IsBlock + } + return false +} + +type AdminRolesPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*AdminRolesPageResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *AdminRolesPageResponse) Reset() { + *x = AdminRolesPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminRolesPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminRolesPageResponse) ProtoMessage() {} + +func (x *AdminRolesPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[86] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminRolesPageResponse.ProtoReflect.Descriptor instead. +func (*AdminRolesPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{86} +} + +func (x *AdminRolesPageResponse) GetList() []*AdminRolesPageResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *AdminRolesPageResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +type AdminUpdateRoleActionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Id int32 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *AdminUpdateRoleActionRequest) Reset() { + *x = AdminUpdateRoleActionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminUpdateRoleActionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminUpdateRoleActionRequest) ProtoMessage() {} + +func (x *AdminUpdateRoleActionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[87] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminUpdateRoleActionRequest.ProtoReflect.Descriptor instead. +func (*AdminUpdateRoleActionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{87} +} + +func (x *AdminUpdateRoleActionRequest) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AdminUpdateRoleActionRequest) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type AdminUpdateRoleActionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AdminUpdateRoleActionResponse) Reset() { + *x = AdminUpdateRoleActionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminUpdateRoleActionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminUpdateRoleActionResponse) ProtoMessage() {} + +func (x *AdminUpdateRoleActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[88] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminUpdateRoleActionResponse.ProtoReflect.Descriptor instead. +func (*AdminUpdateRoleActionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{88} +} + +type AdminUserPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoleId int32 `protobuf:"varint,1,opt,name=roleId,proto3" json:"roleId,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` + CreatedStart string `protobuf:"bytes,3,opt,name=createdStart,proto3" json:"createdStart,omitempty"` + CreatedEnd string `protobuf:"bytes,4,opt,name=createdEnd,proto3" json:"createdEnd,omitempty"` + LoginStart string `protobuf:"bytes,5,opt,name=loginStart,proto3" json:"loginStart,omitempty"` + LoginEnd string `protobuf:"bytes,6,opt,name=loginEnd,proto3" json:"loginEnd,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` + UserId int32 `protobuf:"varint,8,opt,name=userId,proto3" json:"userId,omitempty"` + Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` + Page int32 `protobuf:"varint,10,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *AdminUserPageRequest) Reset() { + *x = AdminUserPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminUserPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminUserPageRequest) ProtoMessage() {} + +func (x *AdminUserPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[89] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminUserPageRequest.ProtoReflect.Descriptor instead. +func (*AdminUserPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{89} +} + +func (x *AdminUserPageRequest) GetRoleId() int32 { + if x != nil { + return x.RoleId + } + return 0 +} + +func (x *AdminUserPageRequest) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AdminUserPageRequest) GetCreatedStart() string { + if x != nil { + return x.CreatedStart + } + return "" +} + +func (x *AdminUserPageRequest) GetCreatedEnd() string { + if x != nil { + return x.CreatedEnd + } + return "" +} + +func (x *AdminUserPageRequest) GetLoginStart() string { + if x != nil { + return x.LoginStart + } + return "" +} + +func (x *AdminUserPageRequest) GetLoginEnd() string { + if x != nil { + return x.LoginEnd + } + return "" +} + +func (x *AdminUserPageRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *AdminUserPageRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *AdminUserPageRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AdminUserPageRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +type AdminUserPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` + Roles []int32 `protobuf:"varint,4,rep,packed,name=roles,proto3" json:"roles,omitempty"` + RegisterTime string `protobuf:"bytes,5,opt,name=registerTime,proto3" json:"registerTime,omitempty"` + LastTime string `protobuf:"bytes,6,opt,name=lastTime,proto3" json:"lastTime,omitempty"` +} + +func (x *AdminUserPageResponseItem) Reset() { + *x = AdminUserPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminUserPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminUserPageResponseItem) ProtoMessage() {} + +func (x *AdminUserPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[90] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminUserPageResponseItem.ProtoReflect.Descriptor instead. +func (*AdminUserPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{90} +} + +func (x *AdminUserPageResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminUserPageResponseItem) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AdminUserPageResponseItem) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *AdminUserPageResponseItem) GetRoles() []int32 { + if x != nil { + return x.Roles + } + return nil +} + +func (x *AdminUserPageResponseItem) GetRegisterTime() string { + if x != nil { + return x.RegisterTime + } + return "" +} + +func (x *AdminUserPageResponseItem) GetLastTime() string { + if x != nil { + return x.LastTime + } + return "" +} + +type AdminUserPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*AdminUserPageResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *AdminUserPageResponse) Reset() { + *x = AdminUserPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminUserPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminUserPageResponse) ProtoMessage() {} + +func (x *AdminUserPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[91] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminUserPageResponse.ProtoReflect.Descriptor instead. +func (*AdminUserPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{91} +} + +func (x *AdminUserPageResponse) GetList() []*AdminUserPageResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *AdminUserPageResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +// +type AdminUpdateUserActionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + Status *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + RoleIds []*wrapperspb.Int32Value `protobuf:"bytes,3,rep,name=roleIds,proto3" json:"roleIds,omitempty"` +} + +func (x *AdminUpdateUserActionRequest) Reset() { + *x = AdminUpdateUserActionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminUpdateUserActionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminUpdateUserActionRequest) ProtoMessage() {} + +func (x *AdminUpdateUserActionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[92] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminUpdateUserActionRequest.ProtoReflect.Descriptor instead. +func (*AdminUpdateUserActionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{92} +} + +func (x *AdminUpdateUserActionRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *AdminUpdateUserActionRequest) GetStatus() *wrapperspb.Int32Value { + if x != nil { + return x.Status + } + return nil +} + +func (x *AdminUpdateUserActionRequest) GetRoleIds() []*wrapperspb.Int32Value { + if x != nil { + return x.RoleIds + } + return nil +} + +type AdminUpdateUserActionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AdminUpdateUserActionResponse) Reset() { + *x = AdminUpdateUserActionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminUpdateUserActionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminUpdateUserActionResponse) ProtoMessage() {} + +func (x *AdminUpdateUserActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[93] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminUpdateUserActionResponse.ProtoReflect.Descriptor instead. +func (*AdminUpdateUserActionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{93} +} + +type AdminNodePageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` + // 1 answer 2 question + Type int32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` + Page int32 `protobuf:"varint,4,opt,name=page,proto3" json:"page,omitempty"` + CreatedStart string `protobuf:"bytes,5,opt,name=createdStart,proto3" json:"createdStart,omitempty"` + CreatedEnd string `protobuf:"bytes,6,opt,name=createdEnd,proto3" json:"createdEnd,omitempty"` + Title string `protobuf:"bytes,7,opt,name=title,proto3" json:"title,omitempty"` + Name string `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"` + UserId int32 `protobuf:"varint,9,opt,name=userId,proto3" json:"userId,omitempty"` +} + +func (x *AdminNodePageRequest) Reset() { + *x = AdminNodePageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminNodePageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminNodePageRequest) ProtoMessage() {} + +func (x *AdminNodePageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[94] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminNodePageRequest.ProtoReflect.Descriptor instead. +func (*AdminNodePageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{94} +} + +func (x *AdminNodePageRequest) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AdminNodePageRequest) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *AdminNodePageRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *AdminNodePageRequest) GetCreatedStart() string { + if x != nil { + return x.CreatedStart + } + return "" +} + +func (x *AdminNodePageRequest) GetCreatedEnd() string { + if x != nil { + return x.CreatedEnd + } + return "" +} + +func (x *AdminNodePageRequest) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AdminNodePageRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AdminNodePageRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +type AdminNodePageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + UserId int32 `protobuf:"varint,4,opt,name=userId,proto3" json:"userId,omitempty"` + UserName string `protobuf:"bytes,5,opt,name=userName,proto3" json:"userName,omitempty"` + Status int32 `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"` + Url string `protobuf:"bytes,7,opt,name=url,proto3" json:"url,omitempty"` + Promote int32 `protobuf:"varint,8,opt,name=promote,proto3" json:"promote,omitempty"` + Sticky int32 `protobuf:"varint,9,opt,name=sticky,proto3" json:"sticky,omitempty"` + Reason string `protobuf:"bytes,10,opt,name=reason,proto3" json:"reason,omitempty"` + PostTime string `protobuf:"bytes,11,opt,name=postTime,proto3" json:"postTime,omitempty"` + ChangedTime string `protobuf:"bytes,12,opt,name=changedTime,proto3" json:"changedTime,omitempty"` +} + +func (x *AdminNodePageResponseItem) Reset() { + *x = AdminNodePageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminNodePageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminNodePageResponseItem) ProtoMessage() {} + +func (x *AdminNodePageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[95] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminNodePageResponseItem.ProtoReflect.Descriptor instead. +func (*AdminNodePageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{95} +} + +func (x *AdminNodePageResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminNodePageResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AdminNodePageResponseItem) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *AdminNodePageResponseItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *AdminNodePageResponseItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *AdminNodePageResponseItem) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AdminNodePageResponseItem) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *AdminNodePageResponseItem) GetPromote() int32 { + if x != nil { + return x.Promote + } + return 0 +} + +func (x *AdminNodePageResponseItem) GetSticky() int32 { + if x != nil { + return x.Sticky + } + return 0 +} + +func (x *AdminNodePageResponseItem) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *AdminNodePageResponseItem) GetPostTime() string { + if x != nil { + return x.PostTime + } + return "" +} + +func (x *AdminNodePageResponseItem) GetChangedTime() string { + if x != nil { + return x.ChangedTime + } + return "" +} + +type AdminNodePageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*AdminNodePageResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *AdminNodePageResponse) Reset() { + *x = AdminNodePageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminNodePageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminNodePageResponse) ProtoMessage() {} + +func (x *AdminNodePageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[96] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminNodePageResponse.ProtoReflect.Descriptor instead. +func (*AdminNodePageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{96} +} + +func (x *AdminNodePageResponse) GetList() []*AdminNodePageResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *AdminNodePageResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +type UpdateNodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *wrapperspb.Int32Value `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Promote *wrapperspb.Int32Value `protobuf:"bytes,2,opt,name=promote,proto3" json:"promote,omitempty"` + Sticky *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=sticky,proto3" json:"sticky,omitempty"` + NodeIds []int32 `protobuf:"varint,4,rep,packed,name=nodeIds,proto3" json:"nodeIds,omitempty"` +} + +func (x *UpdateNodeRequest) Reset() { + *x = UpdateNodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeRequest) ProtoMessage() {} + +func (x *UpdateNodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[97] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateNodeRequest.ProtoReflect.Descriptor instead. +func (*UpdateNodeRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{97} +} + +func (x *UpdateNodeRequest) GetStatus() *wrapperspb.Int32Value { + if x != nil { + return x.Status + } + return nil +} + +func (x *UpdateNodeRequest) GetPromote() *wrapperspb.Int32Value { + if x != nil { + return x.Promote + } + return nil +} + +func (x *UpdateNodeRequest) GetSticky() *wrapperspb.Int32Value { + if x != nil { + return x.Sticky + } + return nil +} + +func (x *UpdateNodeRequest) GetNodeIds() []int32 { + if x != nil { + return x.NodeIds + } + return nil +} + +type UpdateNodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateNodeResponse) Reset() { + *x = UpdateNodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateNodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateNodeResponse) ProtoMessage() {} + +func (x *UpdateNodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[98] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateNodeResponse.ProtoReflect.Descriptor instead. +func (*UpdateNodeResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{98} +} + +type HelpPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UrlKey string `protobuf:"bytes,1,opt,name=urlKey,proto3" json:"urlKey,omitempty"` +} + +func (x *HelpPageRequest) Reset() { + *x = HelpPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HelpPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HelpPageRequest) ProtoMessage() {} + +func (x *HelpPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[99] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HelpPageRequest.ProtoReflect.Descriptor instead. +func (*HelpPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{99} +} + +func (x *HelpPageRequest) GetUrlKey() string { + if x != nil { + return x.UrlKey + } + return "" +} + +type HelpPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Children []*HelpPageResponseItem `protobuf:"bytes,3,rep,name=children,proto3" json:"children,omitempty"` + Pid int32 `protobuf:"varint,4,opt,name=pid,proto3" json:"pid,omitempty"` +} + +func (x *HelpPageResponseItem) Reset() { + *x = HelpPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HelpPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HelpPageResponseItem) ProtoMessage() {} + +func (x *HelpPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[100] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HelpPageResponseItem.ProtoReflect.Descriptor instead. +func (*HelpPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{100} +} + +func (x *HelpPageResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *HelpPageResponseItem) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *HelpPageResponseItem) GetChildren() []*HelpPageResponseItem { + if x != nil { + return x.Children + } + return nil +} + +func (x *HelpPageResponseItem) GetPid() int32 { + if x != nil { + return x.Pid + } + return 0 +} + +type HelpPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Menus []*HelpPageResponseItem `protobuf:"bytes,1,rep,name=menus,proto3" json:"menus,omitempty"` + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` + Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` +} + +func (x *HelpPageResponse) Reset() { + *x = HelpPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HelpPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HelpPageResponse) ProtoMessage() {} + +func (x *HelpPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[101] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HelpPageResponse.ProtoReflect.Descriptor instead. +func (*HelpPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{101} +} + +func (x *HelpPageResponse) GetMenus() []*HelpPageResponseItem { + if x != nil { + return x.Menus + } + return nil +} + +func (x *HelpPageResponse) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *HelpPageResponse) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +type RandQuestionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RandQuestionRequest) Reset() { + *x = RandQuestionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RandQuestionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RandQuestionRequest) ProtoMessage() {} + +func (x *RandQuestionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[102] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RandQuestionRequest.ProtoReflect.Descriptor instead. +func (*RandQuestionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{102} +} + +type RandQuestionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *RandQuestionResponse) Reset() { + *x = RandQuestionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RandQuestionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RandQuestionResponse) ProtoMessage() {} + +func (x *RandQuestionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[103] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RandQuestionResponse.ProtoReflect.Descriptor instead. +func (*RandQuestionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{103} +} + +func (x *RandQuestionResponse) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type ExchangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ExchangeRequest) Reset() { + *x = ExchangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExchangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExchangeRequest) ProtoMessage() {} + +func (x *ExchangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[104] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExchangeRequest.ProtoReflect.Descriptor instead. +func (*ExchangeRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{104} +} + +type ExchangeResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` + Point int32 `protobuf:"varint,3,opt,name=point,proto3" json:"point,omitempty"` + Image string `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"` + Id int32 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *ExchangeResponseItem) Reset() { + *x = ExchangeResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExchangeResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExchangeResponseItem) ProtoMessage() {} + +func (x *ExchangeResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[105] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExchangeResponseItem.ProtoReflect.Descriptor instead. +func (*ExchangeResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{105} +} + +func (x *ExchangeResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *ExchangeResponseItem) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *ExchangeResponseItem) GetPoint() int32 { + if x != nil { + return x.Point + } + return 0 +} + +func (x *ExchangeResponseItem) GetImage() string { + if x != nil { + return x.Image + } + return "" +} + +func (x *ExchangeResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type ExchangeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*ExchangeResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` +} + +func (x *ExchangeResponse) Reset() { + *x = ExchangeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExchangeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExchangeResponse) ProtoMessage() {} + +func (x *ExchangeResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[106] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExchangeResponse.ProtoReflect.Descriptor instead. +func (*ExchangeResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{106} +} + +func (x *ExchangeResponse) GetList() []*ExchangeResponseItem { + if x != nil { + return x.List + } + return nil +} + +type AdminExchangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *AdminExchangeRequest) Reset() { + *x = AdminExchangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminExchangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminExchangeRequest) ProtoMessage() {} + +func (x *AdminExchangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[107] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminExchangeRequest.ProtoReflect.Descriptor instead. +func (*AdminExchangeRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{107} +} + +func (x *AdminExchangeRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +type AdminExchangeResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + UserId int32 `protobuf:"varint,4,opt,name=userId,proto3" json:"userId,omitempty"` + Points int32 `protobuf:"varint,5,opt,name=points,proto3" json:"points,omitempty"` + Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"` + AddressCode string `protobuf:"bytes,7,opt,name=addressCode,proto3" json:"addressCode,omitempty"` + Address string `protobuf:"bytes,8,opt,name=address,proto3" json:"address,omitempty"` + Other string `protobuf:"bytes,9,opt,name=other,proto3" json:"other,omitempty"` + CreatedTime string `protobuf:"bytes,10,opt,name=createdTime,proto3" json:"createdTime,omitempty"` +} + +func (x *AdminExchangeResponseItem) Reset() { + *x = AdminExchangeResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminExchangeResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminExchangeResponseItem) ProtoMessage() {} + +func (x *AdminExchangeResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[108] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminExchangeResponseItem.ProtoReflect.Descriptor instead. +func (*AdminExchangeResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{108} +} + +func (x *AdminExchangeResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminExchangeResponseItem) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *AdminExchangeResponseItem) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AdminExchangeResponseItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *AdminExchangeResponseItem) GetPoints() int32 { + if x != nil { + return x.Points + } + return 0 +} + +func (x *AdminExchangeResponseItem) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *AdminExchangeResponseItem) GetAddressCode() string { + if x != nil { + return x.AddressCode + } + return "" +} + +func (x *AdminExchangeResponseItem) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *AdminExchangeResponseItem) GetOther() string { + if x != nil { + return x.Other + } + return "" +} + +func (x *AdminExchangeResponseItem) GetCreatedTime() string { + if x != nil { + return x.CreatedTime + } + return "" +} + +type AdminExchangeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*AdminExchangeResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *AdminExchangeResponse) Reset() { + *x = AdminExchangeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminExchangeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminExchangeResponse) ProtoMessage() {} + +func (x *AdminExchangeResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[109] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminExchangeResponse.ProtoReflect.Descriptor instead. +func (*AdminExchangeResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{109} +} + +func (x *AdminExchangeResponse) GetList() []*AdminExchangeResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *AdminExchangeResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +type ExchangeActionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"` + AddressCode string `protobuf:"bytes,7,opt,name=addressCode,proto3" json:"addressCode,omitempty"` + Address string `protobuf:"bytes,8,opt,name=address,proto3" json:"address,omitempty"` + Other string `protobuf:"bytes,9,opt,name=other,proto3" json:"other,omitempty"` +} + +func (x *ExchangeActionRequest) Reset() { + *x = ExchangeActionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExchangeActionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExchangeActionRequest) ProtoMessage() {} + +func (x *ExchangeActionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[110] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExchangeActionRequest.ProtoReflect.Descriptor instead. +func (*ExchangeActionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{110} +} + +func (x *ExchangeActionRequest) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ExchangeActionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ExchangeActionRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *ExchangeActionRequest) GetAddressCode() string { + if x != nil { + return x.AddressCode + } + return "" +} + +func (x *ExchangeActionRequest) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *ExchangeActionRequest) GetOther() string { + if x != nil { + return x.Other + } + return "" +} + +type ExchangeActionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ExchangeActionResponse) Reset() { + *x = ExchangeActionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExchangeActionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExchangeActionResponse) ProtoMessage() {} + +func (x *ExchangeActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[111] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExchangeActionResponse.ProtoReflect.Descriptor instead. +func (*ExchangeActionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{111} +} + +type AdminPointsPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + TypeId int32 `protobuf:"varint,2,opt,name=typeId,proto3" json:"typeId,omitempty"` + Page int32 `protobuf:"varint,3,opt,name=page,proto3" json:"page,omitempty"` + StartTime string `protobuf:"bytes,4,opt,name=startTime,proto3" json:"startTime,omitempty"` + EndTime string `protobuf:"bytes,5,opt,name=endTime,proto3" json:"endTime,omitempty"` +} + +func (x *AdminPointsPageRequest) Reset() { + *x = AdminPointsPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminPointsPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminPointsPageRequest) ProtoMessage() {} + +func (x *AdminPointsPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[112] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminPointsPageRequest.ProtoReflect.Descriptor instead. +func (*AdminPointsPageRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{112} +} + +func (x *AdminPointsPageRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *AdminPointsPageRequest) GetTypeId() int32 { + if x != nil { + return x.TypeId + } + return 0 +} + +func (x *AdminPointsPageRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *AdminPointsPageRequest) GetStartTime() string { + if x != nil { + return x.StartTime + } + return "" +} + +func (x *AdminPointsPageRequest) GetEndTime() string { + if x != nil { + return x.EndTime + } + return "" +} + +type AdminPointsPageResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + UserId int32 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` + Point int32 `protobuf:"varint,3,opt,name=point,proto3" json:"point,omitempty"` + CreatedTime string `protobuf:"bytes,4,opt,name=createdTime,proto3" json:"createdTime,omitempty"` + TypeId int32 `protobuf:"varint,5,opt,name=typeId,proto3" json:"typeId,omitempty"` + Url string `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"` + UserName string `protobuf:"bytes,7,opt,name=userName,proto3" json:"userName,omitempty"` +} + +func (x *AdminPointsPageResponseItem) Reset() { + *x = AdminPointsPageResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminPointsPageResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminPointsPageResponseItem) ProtoMessage() {} + +func (x *AdminPointsPageResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[113] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminPointsPageResponseItem.ProtoReflect.Descriptor instead. +func (*AdminPointsPageResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{113} +} + +func (x *AdminPointsPageResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminPointsPageResponseItem) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *AdminPointsPageResponseItem) GetPoint() int32 { + if x != nil { + return x.Point + } + return 0 +} + +func (x *AdminPointsPageResponseItem) GetCreatedTime() string { + if x != nil { + return x.CreatedTime + } + return "" +} + +func (x *AdminPointsPageResponseItem) GetTypeId() int32 { + if x != nil { + return x.TypeId + } + return 0 +} + +func (x *AdminPointsPageResponseItem) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *AdminPointsPageResponseItem) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +type AdminPointsPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*AdminPointsPageResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *AdminPointsPageResponse) Reset() { + *x = AdminPointsPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminPointsPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminPointsPageResponse) ProtoMessage() {} + +func (x *AdminPointsPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[114] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminPointsPageResponse.ProtoReflect.Descriptor instead. +func (*AdminPointsPageResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{114} +} + +func (x *AdminPointsPageResponse) GetList() []*AdminPointsPageResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *AdminPointsPageResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +//query: INSERT INTO userpoints_txn (uid, approver_uid, points, time_stamp, changed, status, description, reference, expirydate, expired, parent_txn_id, tid, entity_id, operation) VALUES (1, 0, 100000, 1658815066, 1658815066, 0, 'desc', '111111', 0, 0, 0, 16, 0, 'admin') +//query: UPDATE userpoints SET points = 100010, max_points = 100012, last_update = 1658815066 WHERE uid = 1 AND tid = 16 +type AdminAddPointActionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId int32 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` + Point int32 `protobuf:"varint,2,opt,name=point,proto3" json:"point,omitempty"` + TypeId int32 `protobuf:"varint,3,opt,name=typeId,proto3" json:"typeId,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + EntryId int32 `protobuf:"varint,5,opt,name=entryId,proto3" json:"entryId,omitempty"` +} + +func (x *AdminAddPointActionRequest) Reset() { + *x = AdminAddPointActionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminAddPointActionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminAddPointActionRequest) ProtoMessage() {} + +func (x *AdminAddPointActionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[115] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminAddPointActionRequest.ProtoReflect.Descriptor instead. +func (*AdminAddPointActionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{115} +} + +func (x *AdminAddPointActionRequest) GetUserId() int32 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *AdminAddPointActionRequest) GetPoint() int32 { + if x != nil { + return x.Point + } + return 0 +} + +func (x *AdminAddPointActionRequest) GetTypeId() int32 { + if x != nil { + return x.TypeId + } + return 0 +} + +func (x *AdminAddPointActionRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *AdminAddPointActionRequest) GetEntryId() int32 { + if x != nil { + return x.EntryId + } + return 0 +} + +type AdminAddPointActionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AdminAddPointActionResponse) Reset() { + *x = AdminAddPointActionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminAddPointActionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminAddPointActionResponse) ProtoMessage() {} + +func (x *AdminAddPointActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[116] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminAddPointActionResponse.ProtoReflect.Descriptor instead. +func (*AdminAddPointActionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{116} +} + +type RedirectRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` +} + +func (x *RedirectRequest) Reset() { + *x = RedirectRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedirectRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedirectRequest) ProtoMessage() {} + +func (x *RedirectRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[117] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RedirectRequest.ProtoReflect.Descriptor instead. +func (*RedirectRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{117} +} + +func (x *RedirectRequest) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *RedirectRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +type RedirectResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *RedirectResponse) Reset() { + *x = RedirectResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedirectResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedirectResponse) ProtoMessage() {} + +func (x *RedirectResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[118] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RedirectResponse.ProtoReflect.Descriptor instead. +func (*RedirectResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{118} +} + +func (x *RedirectResponse) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type ClearCheckTimeActionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeId int32 `protobuf:"varint,1,opt,name=typeId,proto3" json:"typeId,omitempty"` +} + +func (x *ClearCheckTimeActionRequest) Reset() { + *x = ClearCheckTimeActionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClearCheckTimeActionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClearCheckTimeActionRequest) ProtoMessage() {} + +func (x *ClearCheckTimeActionRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[119] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClearCheckTimeActionRequest.ProtoReflect.Descriptor instead. +func (*ClearCheckTimeActionRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{119} +} + +func (x *ClearCheckTimeActionRequest) GetTypeId() int32 { + if x != nil { + return x.TypeId + } + return 0 +} + +type ClearCheckTimeActionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ClearCheckTimeActionResponse) Reset() { + *x = ClearCheckTimeActionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClearCheckTimeActionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClearCheckTimeActionResponse) ProtoMessage() {} + +func (x *ClearCheckTimeActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[120] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClearCheckTimeActionResponse.ProtoReflect.Descriptor instead. +func (*ClearCheckTimeActionResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{120} +} + +type AdminAddHelpRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + ParentId int32 `protobuf:"varint,4,opt,name=parentId,proto3" json:"parentId,omitempty"` + Sort int32 `protobuf:"varint,5,opt,name=sort,proto3" json:"sort,omitempty"` + Content string `protobuf:"bytes,6,opt,name=content,proto3" json:"content,omitempty"` +} + +func (x *AdminAddHelpRequest) Reset() { + *x = AdminAddHelpRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminAddHelpRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminAddHelpRequest) ProtoMessage() {} + +func (x *AdminAddHelpRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[121] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminAddHelpRequest.ProtoReflect.Descriptor instead. +func (*AdminAddHelpRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{121} +} + +func (x *AdminAddHelpRequest) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminAddHelpRequest) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AdminAddHelpRequest) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *AdminAddHelpRequest) GetParentId() int32 { + if x != nil { + return x.ParentId + } + return 0 +} + +func (x *AdminAddHelpRequest) GetSort() int32 { + if x != nil { + return x.Sort + } + return 0 +} + +func (x *AdminAddHelpRequest) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +type AdminAddHelpResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *AdminAddHelpResponse) Reset() { + *x = AdminAddHelpResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminAddHelpResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminAddHelpResponse) ProtoMessage() {} + +func (x *AdminAddHelpResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[122] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminAddHelpResponse.ProtoReflect.Descriptor instead. +func (*AdminAddHelpResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{122} +} + +func (x *AdminAddHelpResponse) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type AdminSearchHelpRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *AdminSearchHelpRequest) Reset() { + *x = AdminSearchHelpRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminSearchHelpRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminSearchHelpRequest) ProtoMessage() {} + +func (x *AdminSearchHelpRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[123] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminSearchHelpRequest.ProtoReflect.Descriptor instead. +func (*AdminSearchHelpRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{123} +} + +func (x *AdminSearchHelpRequest) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AdminSearchHelpRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +type AdminSearchHelpResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + Sort int32 `protobuf:"varint,4,opt,name=sort,proto3" json:"sort,omitempty"` + Status int32 `protobuf:"varint,5,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *AdminSearchHelpResponseItem) Reset() { + *x = AdminSearchHelpResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminSearchHelpResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminSearchHelpResponseItem) ProtoMessage() {} + +func (x *AdminSearchHelpResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[124] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminSearchHelpResponseItem.ProtoReflect.Descriptor instead. +func (*AdminSearchHelpResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{124} +} + +func (x *AdminSearchHelpResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminSearchHelpResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AdminSearchHelpResponseItem) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *AdminSearchHelpResponseItem) GetSort() int32 { + if x != nil { + return x.Sort + } + return 0 +} + +func (x *AdminSearchHelpResponseItem) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +type AdminSearchHelpResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*AdminSearchHelpResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=num,proto3" json:"num,omitempty"` +} + +func (x *AdminSearchHelpResponse) Reset() { + *x = AdminSearchHelpResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminSearchHelpResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminSearchHelpResponse) ProtoMessage() {} + +func (x *AdminSearchHelpResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[125] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminSearchHelpResponse.ProtoReflect.Descriptor instead. +func (*AdminSearchHelpResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{125} +} + +func (x *AdminSearchHelpResponse) GetList() []*AdminSearchHelpResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *AdminSearchHelpResponse) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +type AdminGetHelpRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *AdminGetHelpRequest) Reset() { + *x = AdminGetHelpRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminGetHelpRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminGetHelpRequest) ProtoMessage() {} + +func (x *AdminGetHelpRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[126] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminGetHelpRequest.ProtoReflect.Descriptor instead. +func (*AdminGetHelpRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{126} +} + +func (x *AdminGetHelpRequest) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type AdminGetHelpResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + Sort int32 `protobuf:"varint,3,opt,name=sort,proto3" json:"sort,omitempty"` + Content string `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"` +} + +func (x *AdminGetHelpResponseItem) Reset() { + *x = AdminGetHelpResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminGetHelpResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminGetHelpResponseItem) ProtoMessage() {} + +func (x *AdminGetHelpResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[127] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminGetHelpResponseItem.ProtoReflect.Descriptor instead. +func (*AdminGetHelpResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{127} +} + +func (x *AdminGetHelpResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminGetHelpResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AdminGetHelpResponseItem) GetSort() int32 { + if x != nil { + return x.Sort + } + return 0 +} + +func (x *AdminGetHelpResponseItem) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +type AdminGetHelpResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` + Sort int32 `protobuf:"varint,4,opt,name=sort,proto3" json:"sort,omitempty"` + List []*AdminGetHelpResponseItem `protobuf:"bytes,5,rep,name=list,proto3" json:"list,omitempty"` +} + +func (x *AdminGetHelpResponse) Reset() { + *x = AdminGetHelpResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminGetHelpResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminGetHelpResponse) ProtoMessage() {} + +func (x *AdminGetHelpResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[128] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminGetHelpResponse.ProtoReflect.Descriptor instead. +func (*AdminGetHelpResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{128} +} + +func (x *AdminGetHelpResponse) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminGetHelpResponse) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AdminGetHelpResponse) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *AdminGetHelpResponse) GetSort() int32 { + if x != nil { + return x.Sort + } + return 0 +} + +func (x *AdminGetHelpResponse) GetList() []*AdminGetHelpResponseItem { + if x != nil { + return x.List + } + return nil +} + +type AdminDeleteHelpRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *AdminDeleteHelpRequest) Reset() { + *x = AdminDeleteHelpRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminDeleteHelpRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminDeleteHelpRequest) ProtoMessage() {} + +func (x *AdminDeleteHelpRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[129] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminDeleteHelpRequest.ProtoReflect.Descriptor instead. +func (*AdminDeleteHelpRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{129} +} + +func (x *AdminDeleteHelpRequest) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminDeleteHelpRequest) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +type AdminDeleteHelpResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AdminDeleteHelpResponse) Reset() { + *x = AdminDeleteHelpResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[130] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminDeleteHelpResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminDeleteHelpResponse) ProtoMessage() {} + +func (x *AdminDeleteHelpResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[130] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminDeleteHelpResponse.ProtoReflect.Descriptor instead. +func (*AdminDeleteHelpResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{130} +} + +type AdminSearchExchangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` + Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"` +} + +func (x *AdminSearchExchangeRequest) Reset() { + *x = AdminSearchExchangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminSearchExchangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminSearchExchangeRequest) ProtoMessage() {} + +func (x *AdminSearchExchangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[131] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminSearchExchangeRequest.ProtoReflect.Descriptor instead. +func (*AdminSearchExchangeRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{131} +} + +func (x *AdminSearchExchangeRequest) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AdminSearchExchangeRequest) GetPage() int32 { + if x != nil { + return x.Page + } + return 0 +} + +type AdminSearchExchangeResponseItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` + Picture string `protobuf:"bytes,4,opt,name=picture,proto3" json:"picture,omitempty"` + Point int32 `protobuf:"varint,5,opt,name=point,proto3" json:"point,omitempty"` + Status int32 `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *AdminSearchExchangeResponseItem) Reset() { + *x = AdminSearchExchangeResponseItem{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[132] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminSearchExchangeResponseItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminSearchExchangeResponseItem) ProtoMessage() {} + +func (x *AdminSearchExchangeResponseItem) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[132] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminSearchExchangeResponseItem.ProtoReflect.Descriptor instead. +func (*AdminSearchExchangeResponseItem) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{132} +} + +func (x *AdminSearchExchangeResponseItem) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminSearchExchangeResponseItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AdminSearchExchangeResponseItem) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *AdminSearchExchangeResponseItem) GetPicture() string { + if x != nil { + return x.Picture + } + return "" +} + +func (x *AdminSearchExchangeResponseItem) GetPoint() int32 { + if x != nil { + return x.Point + } + return 0 +} + +func (x *AdminSearchExchangeResponseItem) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +type AdminSearchExchangeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + List []*AdminSearchExchangeResponseItem `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *AdminSearchExchangeResponse) Reset() { + *x = AdminSearchExchangeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[133] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminSearchExchangeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminSearchExchangeResponse) ProtoMessage() {} + +func (x *AdminSearchExchangeResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[133] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminSearchExchangeResponse.ProtoReflect.Descriptor instead. +func (*AdminSearchExchangeResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{133} +} + +func (x *AdminSearchExchangeResponse) GetList() []*AdminSearchExchangeResponseItem { + if x != nil { + return x.List + } + return nil +} + +func (x *AdminSearchExchangeResponse) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +type AdminAddExchangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` + Picture string `protobuf:"bytes,4,opt,name=picture,proto3" json:"picture,omitempty"` + Point int32 `protobuf:"varint,5,opt,name=point,proto3" json:"point,omitempty"` +} + +func (x *AdminAddExchangeRequest) Reset() { + *x = AdminAddExchangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminAddExchangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminAddExchangeRequest) ProtoMessage() {} + +func (x *AdminAddExchangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[134] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminAddExchangeRequest.ProtoReflect.Descriptor instead. +func (*AdminAddExchangeRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{134} +} + +func (x *AdminAddExchangeRequest) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminAddExchangeRequest) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *AdminAddExchangeRequest) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *AdminAddExchangeRequest) GetPicture() string { + if x != nil { + return x.Picture + } + return "" +} + +func (x *AdminAddExchangeRequest) GetPoint() int32 { + if x != nil { + return x.Point + } + return 0 +} + +type AdminAddExchangeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AdminAddExchangeResponse) Reset() { + *x = AdminAddExchangeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminAddExchangeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminAddExchangeResponse) ProtoMessage() {} + +func (x *AdminAddExchangeResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[135] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminAddExchangeResponse.ProtoReflect.Descriptor instead. +func (*AdminAddExchangeResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{135} +} + +type AdminDeleteExchangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *AdminDeleteExchangeRequest) Reset() { + *x = AdminDeleteExchangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminDeleteExchangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminDeleteExchangeRequest) ProtoMessage() {} + +func (x *AdminDeleteExchangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[136] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminDeleteExchangeRequest.ProtoReflect.Descriptor instead. +func (*AdminDeleteExchangeRequest) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{136} +} + +func (x *AdminDeleteExchangeRequest) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AdminDeleteExchangeRequest) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +type AdminDeleteExchangeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + A [][]byte `protobuf:"bytes,1,rep,name=a,proto3" json:"a,omitempty"` + B int32 `protobuf:"varint,2,opt,name=b,proto3" json:"b,omitempty"` + C map[string]int32 `protobuf:"bytes,3,rep,name=c,proto3" json:"c,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + Ad []byte `protobuf:"bytes,4,opt,name=ad,proto3" json:"ad,omitempty"` +} + +func (x *AdminDeleteExchangeResponse) Reset() { + *x = AdminDeleteExchangeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_user_proto_msgTypes[137] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminDeleteExchangeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminDeleteExchangeResponse) ProtoMessage() {} + +func (x *AdminDeleteExchangeResponse) ProtoReflect() protoreflect.Message { + mi := &file_user_proto_msgTypes[137] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminDeleteExchangeResponse.ProtoReflect.Descriptor instead. +func (*AdminDeleteExchangeResponse) Descriptor() ([]byte, []int) { + return file_user_proto_rawDescGZIP(), []int{137} +} + +func (x *AdminDeleteExchangeResponse) GetA() [][]byte { + if x != nil { + return x.A + } + return nil +} + +func (x *AdminDeleteExchangeResponse) GetB() int32 { + if x != nil { + return x.B + } + return 0 +} + +func (x *AdminDeleteExchangeResponse) GetC() map[string]int32 { + if x != nil { + return x.C + } + return nil +} + +func (x *AdminDeleteExchangeResponse) GetAd() []byte { + if x != nil { + return x.Ad + } + return nil +} + +var File_user_proto protoreflect.FileDescriptor + +var file_user_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x61, 0x70, + 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x7e, 0x0a, 0x13, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x00, 0x52, + 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xfa, 0x42, 0x27, 0x72, 0x25, + 0x32, 0x23, 0x5e, 0x28, 0x61, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x7c, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x7c, 0x6e, 0x6f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x7c, 0x6d, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x29, 0x24, 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x6a, 0x0a, 0x18, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x50, 0x0a, 0x14, 0x6c, + 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, + 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0xa7, 0x01, + 0x0a, 0x17, 0x6c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, + 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x79, 0x22, 0xec, 0x03, 0x0a, 0x1c, 0x6c, 0x69, 0x73, 0x74, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x12, 0x1c, 0x0a, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x24, + 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x54, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x54, 0x69, 0x74, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x55, 0x72, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x69, 0x74, 0x79, 0x55, 0x72, 0x6c, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x69, 0x74, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x22, 0x6e, 0x0a, 0x18, 0x6c, 0x69, 0x73, 0x74, 0x51, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, + 0x73, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4e, 0x0a, 0x19, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x1a, 0x04, 0x30, 0x01, 0x30, 0x14, + 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0xc6, 0x01, 0x0a, 0x1e, 0x6c, 0x69, 0x73, 0x74, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, + 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, + 0x68, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, + 0x6e, 0x0a, 0x1a, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4f, 0x66, 0x54, + 0x68, 0x65, 0x44, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, + 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, + 0x16, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x52, 0x69, 0x67, 0x68, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xcb, 0x02, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x4e, 0x6f, 0x74, 0x69, + 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x4e, 0x6f, 0x74, + 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x41, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x17, 0x0a, 0x15, 0x6c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x74, + 0x54, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5e, + 0x0a, 0x1a, 0x6c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x74, 0x54, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xb0, + 0x01, 0x0a, 0x16, 0x6c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x74, 0x54, 0x6f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x68, 0x6f, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x74, 0x54, 0x6f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x04, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x6f, 0x70, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x74, 0x54, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x74, 0x6f, 0x70, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x67, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x3a, 0x0a, 0x19, 0x6c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, + 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x48, 0x0a, + 0x1e, 0x6c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x5c, 0x0a, 0x1a, 0x6c, 0x69, 0x73, 0x74, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x15, 0x6c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, + 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x50, 0x0a, 0x1a, 0x6c, + 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x54, 0x0a, + 0x16, 0x6c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, + 0x69, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x1b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, + 0x65, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, 0x66, 0x0a, 0x20, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0x60, 0x0a, 0x1c, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, + 0x6c, 0x69, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x15, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xd8, 0x02, 0x0a, 0x1a, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, + 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x69, 0x74, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x69, 0x74, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x6a, 0x0a, 0x16, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x63, 0x0a, 0x19, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x76, 0x0a, 0x22, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x67, 0x6f, 0x6f, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x62, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0xd4, 0x01, 0x0a, 0x22, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x70, 0x6f, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x41, 0x6e, 0x6f, 0x6e, + 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x41, + 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x84, 0x02, 0x0a, 0x2a, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x69, 0x74, 0x79, 0x55, + 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x69, 0x74, 0x79, 0x55, 0x72, + 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, 0xde, 0x03, + 0x0a, 0x1e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x61, 0x6e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x65, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x65, 0x6c, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x04, 0x76, 0x6f, + 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x12, 0x42, + 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, + 0x65, 0x72, 0x12, 0x52, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xc0, + 0x02, 0x0a, 0x1a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, + 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x0c, 0x68, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, + 0x56, 0x6f, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0c, 0x68, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, + 0x56, 0x6f, 0x74, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x07, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x2e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x07, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, + 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x50, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x21, 0x75, 0x73, 0x65, 0x72, + 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x10, 0x0a, + 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x69, 0x73, 0x44, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x69, 0x73, 0x44, 0x65, 0x6c, 0x22, 0x9b, 0x04, 0x0a, 0x1d, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x74, + 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75, + 0x73, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x62, 0x6f, + 0x75, 0x74, 0x4d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x62, 0x6f, 0x75, + 0x74, 0x4d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x73, 0x6b, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, + 0x06, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x09, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x07, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x73, 0x22, 0x33, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x45, 0x64, 0x69, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x88, 0x02, 0x0a, 0x16, 0x75, 0x73, 0x65, + 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x64, 0x69, 0x74, 0x50, 0x61, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x4d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x4d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, + 0x16, 0x0a, 0x06, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x6b, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x73, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x69, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x22, 0x54, 0x0a, 0x1a, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x45, 0x64, 0x69, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x64, 0x69, 0x74, 0x50, 0x61, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x67, 0x0a, 0x15, 0x75, 0x73, 0x65, + 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x64, 0x69, 0x74, 0x50, 0x61, 0x67, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x0a, 0x1a, + 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x42, 0x6f, 0x78, 0x50, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x1f, 0x75, 0x73, 0x65, 0x72, 0x43, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x42, 0x6f, 0x78, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, + 0x73, 0x4e, 0x65, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x74, 0x0a, 0x1b, 0x75, 0x73, + 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x42, 0x6f, 0x78, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x6c, 0x69, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x49, + 0x6e, 0x42, 0x6f, 0x78, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x3e, 0x0a, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x69, 0x64, 0x73, + 0x22, 0x15, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x12, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x21, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, + 0x64, 0x22, 0x25, 0x0a, 0x13, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x18, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x1d, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x4e, 0x65, + 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x22, 0xa8, + 0x01, 0x0a, 0x19, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x72, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, + 0x72, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x75, 0x73, 0x65, + 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x20, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, + 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, + 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x4d, + 0x0a, 0x1f, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x77, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x92, 0x02, + 0x0a, 0x24, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x77, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, + 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x16, + 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, + 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, + 0x69, 0x64, 0x22, 0x7e, 0x0a, 0x20, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x4e, 0x65, 0x77, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x77, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x4e, 0x0a, 0x20, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x22, 0xb1, 0x02, 0x0a, 0x25, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x65, 0x64, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x65, 0x64, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x21, 0x75, 0x73, 0x65, 0x72, 0x43, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x04, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, + 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x63, 0x61, 0x70, + 0x74, 0x63, 0x68, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x35, 0x0a, 0x0f, 0x63, + 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, + 0x61, 0x6c, 0x22, 0x31, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x00, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x75, 0x0a, 0x17, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x64, 0x0a, 0x13, + 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6e, + 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x5c, 0x0a, 0x18, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x69, 0x73, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x22, 0x3d, 0x0a, 0x19, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x51, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x73, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, + 0xd3, 0x01, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x72, 0x04, 0x10, 0x01, 0x18, 0x64, + 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, 0x06, 0x63, 0x69, + 0x74, 0x79, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x61, 0x64, 0x64, 0x51, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x33, + 0x0a, 0x16, 0x67, 0x65, 0x74, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6e, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, 0x03, + 0x6e, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x45, 0x64, 0x69, 0x74, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x22, 0x4b, 0x0a, 0x13, 0x65, 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, + 0x6f, 0x67, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x22, 0x28, 0x0a, 0x14, 0x65, 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x88, 0x01, 0x0a, 0x11, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1f, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x29, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x0b, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0a, + 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x14, 0x0a, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x0d, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, + 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x21, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x1c, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x98, 0x01, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x21, 0x0a, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x64, 0x65, 0x4b, + 0x65, 0x79, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x31, 0xfa, 0x42, 0x2e, 0x72, 0x2c, 0x32, 0x2a, 0x5e, 0x28, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x7c, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x7c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x7c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x7c, 0x6e, 0x6f, 0x74, 0x69, 0x63, + 0x65, 0x29, 0x24, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x16, + 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, + 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x0f, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0f, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x22, 0x19, + 0x0a, 0x17, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x0a, 0x10, 0x61, 0x64, 0x64, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x21, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x61, 0x64, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x0a, 0x13, 0x76, 0x6f, 0x74, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x47, 0x6f, 0x6f, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x47, 0x6f, 0x6f, 0x64, 0x22, 0x16, + 0x0a, 0x14, 0x76, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x78, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x22, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x6f, + 0x6c, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5a, + 0x0a, 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x69, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x6a, 0x0a, 0x16, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x44, 0x0a, 0x1c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1f, 0x0a, 0x1d, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x02, + 0x0a, 0x14, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0xad, 0x01, 0x0a, + 0x19, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x68, 0x0a, 0x15, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa2, 0x01, 0x0a, 0x1c, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdc, 0x01, 0x0a, + 0x14, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xbb, 0x02, 0x0a, 0x19, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, + 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x69, 0x63, 0x6b, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x69, + 0x63, 0x6b, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x68, 0x0a, 0x15, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xce, 0x01, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x06, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x0a, 0x0f, 0x68, 0x65, + 0x6c, 0x70, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, + 0x06, 0x75, 0x72, 0x6c, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x72, 0x6c, 0x4b, 0x65, 0x79, 0x22, 0x8e, + 0x01, 0x0a, 0x14, 0x68, 0x65, 0x6c, 0x70, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, + 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x68, + 0x65, 0x6c, 0x70, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x10, 0x0a, + 0x03, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, + 0x7a, 0x0a, 0x10, 0x68, 0x65, 0x6c, 0x70, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x6d, 0x65, 0x6e, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, + 0x68, 0x65, 0x6c, 0x70, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x6d, 0x65, 0x6e, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x72, + 0x61, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x28, 0x0a, 0x14, 0x72, 0x61, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x11, 0x0a, 0x0f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x82, 0x01, 0x0a, 0x14, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x2e, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2a, + 0x0a, 0x14, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x8d, 0x02, 0x0a, 0x19, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x68, 0x0a, 0x15, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc7, 0x01, 0x0a, 0x15, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, + 0x02, 0x28, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x22, 0x18, + 0x0a, 0x16, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x16, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x79, 0x70, + 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0xc3, 0x01, 0x0a, 0x1b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6c, 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, 0x05, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, 0x06, 0x74, 0x79, 0x70, + 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x22, + 0x1d, 0x0a, 0x1b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, + 0x0a, 0x0f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x1a, 0x02, 0x28, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x24, 0x0a, 0x10, 0x72, 0x65, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x35, 0x0a, + 0x1b, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x79, + 0x70, 0x65, 0x49, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, + 0x64, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x26, 0x0a, 0x14, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x41, 0x64, 0x64, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, + 0x44, 0x0a, 0x16, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x65, + 0x6c, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x68, 0x0a, 0x17, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x65, 0x6c, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6e, 0x75, 0x6d, 0x22, 0x25, 0x0a, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x47, 0x65, 0x74, 0x48, + 0x65, 0x6c, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x6e, 0x0a, 0x18, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, + 0x38, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x47, 0x65, 0x74, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x16, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x0a, 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, + 0x22, 0xa9, 0x01, 0x0a, 0x1f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x74, 0x0a, 0x1b, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x1a, + 0x0a, 0x18, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x0a, 0x1a, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0xbd, 0x01, 0x0a, 0x1b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x0c, 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x01, 0x61, 0x12, 0x0c, + 0x0a, 0x01, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x62, 0x12, 0x3c, 0x0a, 0x01, + 0x63, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x43, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x01, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x61, 0x64, 0x1a, 0x34, 0x0a, 0x06, 0x43, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x32, 0xd5, 0x37, 0x0a, 0x06, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x76, 0x0a, 0x0c, 0x6c, + 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x12, 0x86, 0x01, 0x0a, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x67, 0x65, 0x12, 0x8e, 0x01, 0x0a, + 0x12, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4f, 0x66, 0x54, 0x68, 0x65, + 0x44, 0x61, 0x79, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4f, 0x66, 0x54, 0x68, 0x65, + 0x44, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x12, 0x7a, 0x0a, + 0x0d, 0x75, 0x73, 0x65, 0x72, 0x52, 0x69, 0x67, 0x68, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x52, 0x69, 0x67, 0x68, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x7e, 0x0a, 0x0e, 0x6c, 0x69, 0x73, + 0x74, 0x48, 0x6f, 0x74, 0x54, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x74, + 0x54, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, + 0x48, 0x6f, 0x74, 0x54, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x48, + 0x6f, 0x74, 0x54, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x7e, 0x0a, 0x0e, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x6c, 0x69, + 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, + 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x51, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7e, 0x0a, 0x0e, 0x6c, 0x69, + 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x96, 0x01, 0x0a, 0x14, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x50, 0x61, 0x67, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x67, 0x65, 0x12, 0x28, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x67, + 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x45, 0x64, 0x69, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x45, 0x64, 0x69, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x64, 0x69, 0x74, 0x50, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, + 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, + 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x64, 0x69, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x45, 0x64, 0x69, 0x74, 0x12, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x64, 0x69, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x45, + 0x64, 0x69, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x43, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x42, 0x6f, 0x78, 0x50, 0x61, 0x67, 0x65, 0x12, 0x26, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x42, 0x6f, 0x78, 0x50, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x6e, + 0x42, 0x6f, 0x78, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x42, 0x6f, 0x78, 0x50, 0x61, 0x67, 0x65, 0x12, 0x75, 0x0a, 0x0b, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, + 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, + 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x62, 0x6f, 0x78, 0x3a, + 0x01, 0x2a, 0x12, 0x75, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, + 0x64, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x8a, 0x01, 0x0a, 0x11, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x12, + 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x50, 0x61, 0x67, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x72, 0x43, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x12, + 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x43, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x12, + 0xa6, 0x01, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x65, + 0x77, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x50, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x77, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x50, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x4e, 0x65, 0x77, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, + 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, + 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x77, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x73, 0x50, 0x61, 0x67, 0x65, 0x12, 0xaa, 0x01, 0x0a, 0x19, 0x75, 0x73, 0x65, + 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x65, + 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x77, 0x43, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x50, 0x61, 0x67, 0x65, 0x12, 0x72, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, + 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x6e, 0x6f, + 0x74, 0x69, 0x63, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x12, 0x62, 0x0a, 0x07, 0x63, 0x61, 0x70, + 0x74, 0x63, 0x68, 0x61, 0x12, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2e, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x63, 0x61, + 0x70, 0x74, 0x63, 0x68, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x63, 0x61, 0x70, 0x74, 0x63, 0x68, 0x61, 0x12, 0x8d, 0x01, + 0x0a, 0x11, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x51, 0x75, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x2e, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x75, 0x0a, + 0x0b, 0x61, 0x64, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x64, 0x51, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x64, 0x51, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x82, 0x01, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x45, 0x64, 0x69, 0x74, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x64, 0x69, 0x74, 0x51, 0x75, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x64, 0x69, + 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x67, 0x65, 0x74, 0x45, 0x64, 0x69, + 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6d, 0x0a, 0x09, 0x61, 0x64, 0x64, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2e, 0x61, 0x64, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x22, 0x18, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x64, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x3a, 0x01, 0x2a, 0x12, 0x79, 0x0a, 0x0c, 0x65, 0x64, 0x69, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x65, 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, + 0x67, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x65, 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, + 0x6f, 0x67, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x2f, 0x65, 0x64, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x6f, + 0x3a, 0x01, 0x2a, 0x12, 0x71, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x61, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, + 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x01, 0x2a, 0x12, 0x85, 0x01, 0x0a, 0x0f, 0x66, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x66, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x66, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x66, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, + 0x2a, 0x12, 0x79, 0x0a, 0x0c, 0x76, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x6f, 0x6f, + 0x64, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x76, + 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, + 0x76, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, 0x1b, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x76, 0x6f, 0x74, + 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x6f, 0x6f, 0x64, 0x3a, 0x01, 0x2a, 0x12, 0x5d, 0x0a, 0x05, + 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x6c, 0x6f, 0x67, + 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x19, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x7e, 0x0a, 0x0e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x12, 0x21, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x12, 0x9d, 0x01, 0x0a, 0x15, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, + 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x29, 0x22, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, + 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x7a, 0x0a, 0x0d, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x20, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, + 0x73, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, + 0x73, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x9d, 0x01, 0x0a, 0x15, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x7a, 0x0a, 0x0d, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x67, 0x65, 0x12, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x50, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, + 0x65, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x50, + 0x61, 0x67, 0x65, 0x12, 0x71, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x66, 0x0a, 0x08, 0x68, 0x65, 0x6c, 0x70, 0x50, 0x61, + 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, + 0x68, 0x65, 0x6c, 0x70, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x68, 0x65, 0x6c, + 0x70, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x68, 0x65, 0x6c, 0x70, 0x50, 0x61, 0x67, 0x65, 0x12, 0x76, + 0x0a, 0x0c, 0x72, 0x61, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x72, 0x61, 0x6e, 0x64, + 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x72, 0x61, 0x6e, + 0x64, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x72, 0x61, 0x6e, 0x64, 0x51, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x7a, + 0x0a, 0x0d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0e, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x82, + 0x01, 0x0a, 0x0f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, + 0x67, 0x65, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x50, + 0x61, 0x67, 0x65, 0x12, 0x95, 0x01, 0x0a, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, + 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x66, 0x0a, 0x08, 0x72, + 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2e, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2e, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x12, 0x99, 0x01, 0x0a, 0x14, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2e, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x22, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x12, + 0x82, 0x01, 0x0a, 0x0f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, + 0x65, 0x6c, 0x70, 0x12, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x65, 0x6c, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x48, 0x65, 0x6c, 0x70, 0x12, 0x79, 0x0a, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, + 0x48, 0x65, 0x6c, 0x70, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x48, 0x65, 0x6c, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22, + 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x48, 0x65, 0x6c, 0x70, 0x3a, 0x01, 0x2a, 0x12, + 0x76, 0x0a, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x6c, 0x70, 0x12, + 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x47, 0x65, 0x74, 0x48, 0x65, 0x6c, 0x70, 0x12, 0x85, 0x01, 0x0a, 0x0f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x65, 0x6c, 0x70, 0x12, 0x22, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x65, 0x6c, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x65, 0x6c, 0x70, 0x3a, 0x01, 0x2a, 0x12, + 0x92, 0x01, 0x0a, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, + 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x10, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, + 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x01, 0x2a, + 0x12, 0x95, 0x01, 0x0a, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x27, 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x01, 0x2a, 0x42, 0x0c, 0x5a, 0x0a, 0x76, 0x31, 0x2f, 0x3b, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_user_proto_rawDescOnce sync.Once + file_user_proto_rawDescData = file_user_proto_rawDesc +) + +func file_user_proto_rawDescGZIP() []byte { + file_user_proto_rawDescOnce.Do(func() { + file_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_proto_rawDescData) + }) + return file_user_proto_rawDescData +} + +var file_user_proto_msgTypes = make([]protoimpl.MessageInfo, 139) +var file_user_proto_goTypes = []interface{}{ + (*ListCategoryRequest)(nil), // 0: api.answer.listCategoryRequest + (*ListCategoryResponseItem)(nil), // 1: api.answer.listCategoryResponseItem + (*ListCategoryResponse)(nil), // 2: api.answer.listCategoryResponse + (*ListQuestionPageRequest)(nil), // 3: api.answer.listQuestionPageRequest + (*ListQuestionPageResponseItem)(nil), // 4: api.answer.listQuestionPageResponseItem + (*ListQuestionPageResponse)(nil), // 5: api.answer.listQuestionPageResponse + (*ListAnswerOfTheDayRequest)(nil), // 6: api.answer.listAnswerOfTheDayRequest + (*ListAnswerOfTheDayResponseItem)(nil), // 7: api.answer.listAnswerOfTheDayResponseItem + (*ListAnswerOfTheDayResponse)(nil), // 8: api.answer.listAnswerOfTheDayResponse + (*UserRightInfoRequest)(nil), // 9: api.answer.userRightInfoRequest + (*UserRightInfoResponse)(nil), // 10: api.answer.userRightInfoResponse + (*ListHotTopUserRequest)(nil), // 11: api.answer.listHotTopUserRequest + (*ListHotTopUserResponseItem)(nil), // 12: api.answer.listHotTopUserResponseItem + (*ListHotTopUserResponse)(nil), // 13: api.answer.listHotTopUserResponse + (*ListFilterQuestionRequest)(nil), // 14: api.answer.listFilterQuestionRequest + (*ListFilterQuestionResponseItem)(nil), // 15: api.answer.listFilterQuestionResponseItem + (*ListFilterQuestionResponse)(nil), // 16: api.answer.listFilterQuestionResponse + (*ListFilterUserRequest)(nil), // 17: api.answer.listFilterUserRequest + (*ListFilterUserResponseItem)(nil), // 18: api.answer.listFilterUserResponseItem + (*ListFilterUserResponse)(nil), // 19: api.answer.listFilterUserResponse + (*ListRelatedQuestionsRequest)(nil), // 20: api.answer.listRelatedQuestionsRequest + (*ListRelatedQuestionsResponseItem)(nil), // 21: api.answer.listRelatedQuestionsResponseItem + (*ListRelatedQuestionsResponse)(nil), // 22: api.answer.listRelatedQuestionsResponse + (*SearchQuestionRequest)(nil), // 23: api.answer.searchQuestionRequest + (*SearchQuestionResponseItem)(nil), // 24: api.answer.searchQuestionResponseItem + (*SearchQuestionResponse)(nil), // 25: api.answer.searchQuestionResponse + (*QuestionDetailPageRequest)(nil), // 26: api.answer.questionDetailPageRequest + (*QuestionDetailPageResponseItemVote)(nil), // 27: api.answer.questionDetailPageResponseItemVote + (*QuestionDetailPageResponseItemUser)(nil), // 28: api.answer.questionDetailPageResponseItemUser + (*QuestionDetailPageResponseItemQuestionItem)(nil), // 29: api.answer.questionDetailPageResponseItemQuestionItem + (*QuestionDetailPageResponseItem)(nil), // 30: api.answer.questionDetailPageResponseItem + (*QuestionDetailPageResponse)(nil), // 31: api.answer.questionDetailPageResponse + (*UserCenterProfilePageRequest)(nil), // 32: api.answer.userCenterProfilePageRequest + (*UserCenterProfilePageResponseItem)(nil), // 33: api.answer.userCenterProfilePageResponseItem + (*UserCenterProfilePageResponse)(nil), // 34: api.answer.userCenterProfilePageResponse + (*UserCenterEditPageRequest)(nil), // 35: api.answer.userCenterEditPageRequest + (*UserCenterEditPageData)(nil), // 36: api.answer.userCenterEditPageData + (*UserCenterEditPageResponse)(nil), // 37: api.answer.userCenterEditPageResponse + (*UserCenterEditRequest)(nil), // 38: api.answer.userCenterEditRequest + (*UserCenterEditResponse)(nil), // 39: api.answer.userCenterEditResponse + (*UserCenterInBoxPageRequest)(nil), // 40: api.answer.userCenterInBoxPageRequest + (*UserCenterInBoxPageResponseItem)(nil), // 41: api.answer.userCenterInBoxPageResponseItem + (*UserCenterInBoxPageResponse)(nil), // 42: api.answer.userCenterInBoxPageResponse + (*DeleteInboxRequest)(nil), // 43: api.answer.deleteInboxRequest + (*DeleteInboxResponse)(nil), // 44: api.answer.deleteInboxResponse + (*MessageSendRequest)(nil), // 45: api.answer.messageSendRequest + (*MessageSendResponse)(nil), // 46: api.answer.messageSendResponse + (*MessageDetailPageRequest)(nil), // 47: api.answer.messageDetailPageRequest + (*MessageDetailPageResponseItem)(nil), // 48: api.answer.messageDetailPageResponseItem + (*MessageDetailPageResponse)(nil), // 49: api.answer.messageDetailPageResponse + (*UserCenterPointsPageRequest)(nil), // 50: api.answer.userCenterPointsPageRequest + (*UserCenterPointsPageResponseItem)(nil), // 51: api.answer.userCenterPointsPageResponseItem + (*UserCenterPointsPageResponse)(nil), // 52: api.answer.userCenterPointsPageResponse + (*UserCenterNewAnswersPageRequest)(nil), // 53: api.answer.userCenterNewAnswersPageRequest + (*UserCenterNewAnswersPageResponseItem)(nil), // 54: api.answer.userCenterNewAnswersPageResponseItem + (*UserCenterNewAnswersPageResponse)(nil), // 55: api.answer.userCenterNewAnswersPageResponse + (*UserCenterNewCommentsPageRequest)(nil), // 56: api.answer.userCenterNewCommentsPageRequest + (*UserCenterNewCommentsPageResponseItem)(nil), // 57: api.answer.userCenterNewCommentsPageResponseItem + (*UserCenterNewCommentsPageResponse)(nil), // 58: api.answer.userCenterNewCommentsPageResponse + (*CaptchaRequest)(nil), // 59: api.answer.captchaRequest + (*CaptchaResponse)(nil), // 60: api.answer.captchaResponse + (*NoticesPageRequest)(nil), // 61: api.answer.noticesPageRequest + (*NoticesPageResponseItem)(nil), // 62: api.answer.noticesPageResponseItem + (*NoticesPageResponse)(nil), // 63: api.answer.noticesPageResponse + (*ForbiddenQuestionRequest)(nil), // 64: api.answer.forbiddenQuestionRequest + (*ForbiddenQuestionResponse)(nil), // 65: api.answer.forbiddenQuestionResponse + (*AddQuestionRequest)(nil), // 66: api.answer.addQuestionRequest + (*AddQuestionResponse)(nil), // 67: api.answer.addQuestionResponse + (*GetEditQuestionRequest)(nil), // 68: api.answer.getEditQuestionRequest + (*GetEditQuestionResponse)(nil), // 69: api.answer.getEditQuestionResponse + (*EditUserLogoRequest)(nil), // 70: api.answer.editUserLogoRequest + (*EditUserLogoResponse)(nil), // 71: api.answer.editUserLogoResponse + (*DeleteNodeRequest)(nil), // 72: api.answer.deleteNodeRequest + (*DeleteNodeResponse)(nil), // 73: api.answer.deleteNodeResponse + (*ReportRequest)(nil), // 74: api.answer.reportRequest + (*ReportResponse)(nil), // 75: api.answer.reportResponse + (*ForwardQuestionRequest)(nil), // 76: api.answer.forwardQuestionRequest + (*ForwardQuestionResponse)(nil), // 77: api.answer.forwardQuestionResponse + (*AddAnswerRequest)(nil), // 78: api.answer.addAnswerRequest + (*AddAnswerResponse)(nil), // 79: api.answer.addAnswerResponse + (*VoteNodeGoodRequest)(nil), // 80: api.answer.voteNodeGoodRequest + (*VoteNodeGoodResponse)(nil), // 81: api.answer.voteNodeGoodResponse + (*LoginRequest)(nil), // 82: api.answer.loginRequest + (*LoginResponse)(nil), // 83: api.answer.loginResponse + (*AdminRolesPageRequest)(nil), // 84: api.answer.adminRolesPageRequest + (*AdminRolesPageResponseItem)(nil), // 85: api.answer.adminRolesPageResponseItem + (*AdminRolesPageResponse)(nil), // 86: api.answer.adminRolesPageResponse + (*AdminUpdateRoleActionRequest)(nil), // 87: api.answer.adminUpdateRoleActionRequest + (*AdminUpdateRoleActionResponse)(nil), // 88: api.answer.adminUpdateRoleActionResponse + (*AdminUserPageRequest)(nil), // 89: api.answer.adminUserPageRequest + (*AdminUserPageResponseItem)(nil), // 90: api.answer.adminUserPageResponseItem + (*AdminUserPageResponse)(nil), // 91: api.answer.adminUserPageResponse + (*AdminUpdateUserActionRequest)(nil), // 92: api.answer.adminUpdateUserActionRequest + (*AdminUpdateUserActionResponse)(nil), // 93: api.answer.adminUpdateUserActionResponse + (*AdminNodePageRequest)(nil), // 94: api.answer.adminNodePageRequest + (*AdminNodePageResponseItem)(nil), // 95: api.answer.adminNodePageResponseItem + (*AdminNodePageResponse)(nil), // 96: api.answer.adminNodePageResponse + (*UpdateNodeRequest)(nil), // 97: api.answer.updateNodeRequest + (*UpdateNodeResponse)(nil), // 98: api.answer.updateNodeResponse + (*HelpPageRequest)(nil), // 99: api.answer.helpPageRequest + (*HelpPageResponseItem)(nil), // 100: api.answer.helpPageResponseItem + (*HelpPageResponse)(nil), // 101: api.answer.helpPageResponse + (*RandQuestionRequest)(nil), // 102: api.answer.randQuestionRequest + (*RandQuestionResponse)(nil), // 103: api.answer.randQuestionResponse + (*ExchangeRequest)(nil), // 104: api.answer.exchangeRequest + (*ExchangeResponseItem)(nil), // 105: api.answer.exchangeResponseItem + (*ExchangeResponse)(nil), // 106: api.answer.exchangeResponse + (*AdminExchangeRequest)(nil), // 107: api.answer.adminExchangeRequest + (*AdminExchangeResponseItem)(nil), // 108: api.answer.adminExchangeResponseItem + (*AdminExchangeResponse)(nil), // 109: api.answer.adminExchangeResponse + (*ExchangeActionRequest)(nil), // 110: api.answer.exchangeActionRequest + (*ExchangeActionResponse)(nil), // 111: api.answer.exchangeActionResponse + (*AdminPointsPageRequest)(nil), // 112: api.answer.adminPointsPageRequest + (*AdminPointsPageResponseItem)(nil), // 113: api.answer.adminPointsPageResponseItem + (*AdminPointsPageResponse)(nil), // 114: api.answer.adminPointsPageResponse + (*AdminAddPointActionRequest)(nil), // 115: api.answer.adminAddPointActionRequest + (*AdminAddPointActionResponse)(nil), // 116: api.answer.adminAddPointActionResponse + (*RedirectRequest)(nil), // 117: api.answer.redirectRequest + (*RedirectResponse)(nil), // 118: api.answer.redirectResponse + (*ClearCheckTimeActionRequest)(nil), // 119: api.answer.clearCheckTimeActionRequest + (*ClearCheckTimeActionResponse)(nil), // 120: api.answer.clearCheckTimeActionResponse + (*AdminAddHelpRequest)(nil), // 121: api.answer.adminAddHelpRequest + (*AdminAddHelpResponse)(nil), // 122: api.answer.adminAddHelpResponse + (*AdminSearchHelpRequest)(nil), // 123: api.answer.adminSearchHelpRequest + (*AdminSearchHelpResponseItem)(nil), // 124: api.answer.adminSearchHelpResponseItem + (*AdminSearchHelpResponse)(nil), // 125: api.answer.adminSearchHelpResponse + (*AdminGetHelpRequest)(nil), // 126: api.answer.adminGetHelpRequest + (*AdminGetHelpResponseItem)(nil), // 127: api.answer.adminGetHelpResponseItem + (*AdminGetHelpResponse)(nil), // 128: api.answer.adminGetHelpResponse + (*AdminDeleteHelpRequest)(nil), // 129: api.answer.adminDeleteHelpRequest + (*AdminDeleteHelpResponse)(nil), // 130: api.answer.adminDeleteHelpResponse + (*AdminSearchExchangeRequest)(nil), // 131: api.answer.adminSearchExchangeRequest + (*AdminSearchExchangeResponseItem)(nil), // 132: api.answer.adminSearchExchangeResponseItem + (*AdminSearchExchangeResponse)(nil), // 133: api.answer.adminSearchExchangeResponse + (*AdminAddExchangeRequest)(nil), // 134: api.answer.adminAddExchangeRequest + (*AdminAddExchangeResponse)(nil), // 135: api.answer.adminAddExchangeResponse + (*AdminDeleteExchangeRequest)(nil), // 136: api.answer.adminDeleteExchangeRequest + (*AdminDeleteExchangeResponse)(nil), // 137: api.answer.adminDeleteExchangeResponse + nil, // 138: api.answer.adminDeleteExchangeResponse.CEntry + (*wrapperspb.Int32Value)(nil), // 139: google.protobuf.Int32Value +} +var file_user_proto_depIdxs = []int32{ + 1, // 0: api.answer.listCategoryResponse.list:type_name -> api.answer.listCategoryResponseItem + 4, // 1: api.answer.listQuestionPageResponse.list:type_name -> api.answer.listQuestionPageResponseItem + 7, // 2: api.answer.listAnswerOfTheDayResponse.list:type_name -> api.answer.listAnswerOfTheDayResponseItem + 12, // 3: api.answer.listHotTopUserResponse.hots:type_name -> api.answer.listHotTopUserResponseItem + 12, // 4: api.answer.listHotTopUserResponse.tops:type_name -> api.answer.listHotTopUserResponseItem + 15, // 5: api.answer.listFilterQuestionResponse.list:type_name -> api.answer.listFilterQuestionResponseItem + 18, // 6: api.answer.listFilterUserResponse.list:type_name -> api.answer.listFilterUserResponseItem + 21, // 7: api.answer.listRelatedQuestionsResponse.list:type_name -> api.answer.listRelatedQuestionsResponseItem + 24, // 8: api.answer.searchQuestionResponse.list:type_name -> api.answer.searchQuestionResponseItem + 27, // 9: api.answer.questionDetailPageResponseItem.vote:type_name -> api.answer.questionDetailPageResponseItemVote + 28, // 10: api.answer.questionDetailPageResponseItem.user:type_name -> api.answer.questionDetailPageResponseItemUser + 29, // 11: api.answer.questionDetailPageResponseItem.question:type_name -> api.answer.questionDetailPageResponseItemQuestionItem + 30, // 12: api.answer.questionDetailPageResponseItem.comments:type_name -> api.answer.questionDetailPageResponseItem + 30, // 13: api.answer.questionDetailPageResponse.question:type_name -> api.answer.questionDetailPageResponseItem + 30, // 14: api.answer.questionDetailPageResponse.highestVoted:type_name -> api.answer.questionDetailPageResponseItem + 30, // 15: api.answer.questionDetailPageResponse.answers:type_name -> api.answer.questionDetailPageResponseItem + 33, // 16: api.answer.userCenterProfilePageResponse.questions:type_name -> api.answer.userCenterProfilePageResponseItem + 33, // 17: api.answer.userCenterProfilePageResponse.answers:type_name -> api.answer.userCenterProfilePageResponseItem + 36, // 18: api.answer.userCenterEditPageResponse.data:type_name -> api.answer.userCenterEditPageData + 36, // 19: api.answer.userCenterEditRequest.data:type_name -> api.answer.userCenterEditPageData + 41, // 20: api.answer.userCenterInBoxPageResponse.list:type_name -> api.answer.userCenterInBoxPageResponseItem + 48, // 21: api.answer.messageDetailPageResponse.list:type_name -> api.answer.messageDetailPageResponseItem + 51, // 22: api.answer.userCenterPointsPageResponse.list:type_name -> api.answer.userCenterPointsPageResponseItem + 54, // 23: api.answer.userCenterNewAnswersPageResponse.list:type_name -> api.answer.userCenterNewAnswersPageResponseItem + 57, // 24: api.answer.userCenterNewCommentsPageResponse.list:type_name -> api.answer.userCenterNewCommentsPageResponseItem + 62, // 25: api.answer.noticesPageResponse.list:type_name -> api.answer.noticesPageResponseItem + 85, // 26: api.answer.adminRolesPageResponse.list:type_name -> api.answer.adminRolesPageResponseItem + 90, // 27: api.answer.adminUserPageResponse.list:type_name -> api.answer.adminUserPageResponseItem + 139, // 28: api.answer.adminUpdateUserActionRequest.status:type_name -> google.protobuf.Int32Value + 139, // 29: api.answer.adminUpdateUserActionRequest.roleIds:type_name -> google.protobuf.Int32Value + 95, // 30: api.answer.adminNodePageResponse.list:type_name -> api.answer.adminNodePageResponseItem + 139, // 31: api.answer.updateNodeRequest.status:type_name -> google.protobuf.Int32Value + 139, // 32: api.answer.updateNodeRequest.promote:type_name -> google.protobuf.Int32Value + 139, // 33: api.answer.updateNodeRequest.sticky:type_name -> google.protobuf.Int32Value + 100, // 34: api.answer.helpPageResponseItem.children:type_name -> api.answer.helpPageResponseItem + 100, // 35: api.answer.helpPageResponse.menus:type_name -> api.answer.helpPageResponseItem + 105, // 36: api.answer.exchangeResponse.list:type_name -> api.answer.exchangeResponseItem + 108, // 37: api.answer.adminExchangeResponse.list:type_name -> api.answer.adminExchangeResponseItem + 113, // 38: api.answer.adminPointsPageResponse.list:type_name -> api.answer.adminPointsPageResponseItem + 124, // 39: api.answer.adminSearchHelpResponse.list:type_name -> api.answer.adminSearchHelpResponseItem + 127, // 40: api.answer.adminGetHelpResponse.list:type_name -> api.answer.adminGetHelpResponseItem + 132, // 41: api.answer.adminSearchExchangeResponse.list:type_name -> api.answer.adminSearchExchangeResponseItem + 138, // 42: api.answer.adminDeleteExchangeResponse.c:type_name -> api.answer.adminDeleteExchangeResponse.CEntry + 0, // 43: api.answer.Answer.listCategory:input_type -> api.answer.listCategoryRequest + 3, // 44: api.answer.Answer.listQuestionPage:input_type -> api.answer.listQuestionPageRequest + 6, // 45: api.answer.Answer.listAnswerOfTheDay:input_type -> api.answer.listAnswerOfTheDayRequest + 9, // 46: api.answer.Answer.userRightInfo:input_type -> api.answer.userRightInfoRequest + 11, // 47: api.answer.Answer.listHotTopUser:input_type -> api.answer.listHotTopUserRequest + 23, // 48: api.answer.Answer.searchQuestion:input_type -> api.answer.searchQuestionRequest + 14, // 49: api.answer.Answer.listFilterQuestion:input_type -> api.answer.listFilterQuestionRequest + 17, // 50: api.answer.Answer.listFilterUser:input_type -> api.answer.listFilterUserRequest + 20, // 51: api.answer.Answer.listRelatedQuestions:input_type -> api.answer.listRelatedQuestionsRequest + 26, // 52: api.answer.Answer.questionDetailPage:input_type -> api.answer.questionDetailPageRequest + 32, // 53: api.answer.Answer.userCenterProfilePage:input_type -> api.answer.userCenterProfilePageRequest + 35, // 54: api.answer.Answer.userCenterEditPage:input_type -> api.answer.userCenterEditPageRequest + 38, // 55: api.answer.Answer.userCenterEdit:input_type -> api.answer.userCenterEditRequest + 40, // 56: api.answer.Answer.userCenterInBoxPage:input_type -> api.answer.userCenterInBoxPageRequest + 43, // 57: api.answer.Answer.deleteInbox:input_type -> api.answer.deleteInboxRequest + 45, // 58: api.answer.Answer.messageSend:input_type -> api.answer.messageSendRequest + 47, // 59: api.answer.Answer.messageDetailPage:input_type -> api.answer.messageDetailPageRequest + 50, // 60: api.answer.Answer.userCenterPointsPage:input_type -> api.answer.userCenterPointsPageRequest + 53, // 61: api.answer.Answer.userCenterNewAnswersPage:input_type -> api.answer.userCenterNewAnswersPageRequest + 56, // 62: api.answer.Answer.userCenterNewCommentsPage:input_type -> api.answer.userCenterNewCommentsPageRequest + 61, // 63: api.answer.Answer.noticesPage:input_type -> api.answer.noticesPageRequest + 59, // 64: api.answer.Answer.captcha:input_type -> api.answer.captchaRequest + 64, // 65: api.answer.Answer.forbiddenQuestion:input_type -> api.answer.forbiddenQuestionRequest + 66, // 66: api.answer.Answer.addQuestion:input_type -> api.answer.addQuestionRequest + 68, // 67: api.answer.Answer.getEditQuestion:input_type -> api.answer.getEditQuestionRequest + 78, // 68: api.answer.Answer.addAnswer:input_type -> api.answer.addAnswerRequest + 70, // 69: api.answer.Answer.editUserLogo:input_type -> api.answer.editUserLogoRequest + 72, // 70: api.answer.Answer.deleteNode:input_type -> api.answer.deleteNodeRequest + 74, // 71: api.answer.Answer.report:input_type -> api.answer.reportRequest + 76, // 72: api.answer.Answer.forwardQuestion:input_type -> api.answer.forwardQuestionRequest + 80, // 73: api.answer.Answer.voteNodeGood:input_type -> api.answer.voteNodeGoodRequest + 82, // 74: api.answer.Answer.login:input_type -> api.answer.loginRequest + 84, // 75: api.answer.Answer.adminRolesPage:input_type -> api.answer.adminRolesPageRequest + 87, // 76: api.answer.Answer.adminUpdateRoleAction:input_type -> api.answer.adminUpdateRoleActionRequest + 89, // 77: api.answer.Answer.adminUserPage:input_type -> api.answer.adminUserPageRequest + 92, // 78: api.answer.Answer.adminUpdateUserAction:input_type -> api.answer.adminUpdateUserActionRequest + 94, // 79: api.answer.Answer.adminNodePage:input_type -> api.answer.adminNodePageRequest + 97, // 80: api.answer.Answer.updateNode:input_type -> api.answer.updateNodeRequest + 99, // 81: api.answer.Answer.helpPage:input_type -> api.answer.helpPageRequest + 102, // 82: api.answer.Answer.randQuestion:input_type -> api.answer.randQuestionRequest + 104, // 83: api.answer.Answer.exchange:input_type -> api.answer.exchangeRequest + 107, // 84: api.answer.Answer.adminExchange:input_type -> api.answer.adminExchangeRequest + 110, // 85: api.answer.Answer.exchangeAction:input_type -> api.answer.exchangeActionRequest + 112, // 86: api.answer.Answer.adminPointsPage:input_type -> api.answer.adminPointsPageRequest + 115, // 87: api.answer.Answer.adminAddPointAction:input_type -> api.answer.adminAddPointActionRequest + 117, // 88: api.answer.Answer.redirect:input_type -> api.answer.redirectRequest + 119, // 89: api.answer.Answer.clearCheckTimeAction:input_type -> api.answer.clearCheckTimeActionRequest + 123, // 90: api.answer.Answer.adminSearchHelp:input_type -> api.answer.adminSearchHelpRequest + 121, // 91: api.answer.Answer.adminAddHelp:input_type -> api.answer.adminAddHelpRequest + 126, // 92: api.answer.Answer.adminGetHelp:input_type -> api.answer.adminGetHelpRequest + 129, // 93: api.answer.Answer.adminDeleteHelp:input_type -> api.answer.adminDeleteHelpRequest + 131, // 94: api.answer.Answer.adminSearchExchange:input_type -> api.answer.adminSearchExchangeRequest + 134, // 95: api.answer.Answer.adminAddExchange:input_type -> api.answer.adminAddExchangeRequest + 136, // 96: api.answer.Answer.adminDeleteExchange:input_type -> api.answer.adminDeleteExchangeRequest + 2, // 97: api.answer.Answer.listCategory:output_type -> api.answer.listCategoryResponse + 5, // 98: api.answer.Answer.listQuestionPage:output_type -> api.answer.listQuestionPageResponse + 8, // 99: api.answer.Answer.listAnswerOfTheDay:output_type -> api.answer.listAnswerOfTheDayResponse + 10, // 100: api.answer.Answer.userRightInfo:output_type -> api.answer.userRightInfoResponse + 13, // 101: api.answer.Answer.listHotTopUser:output_type -> api.answer.listHotTopUserResponse + 25, // 102: api.answer.Answer.searchQuestion:output_type -> api.answer.searchQuestionResponse + 16, // 103: api.answer.Answer.listFilterQuestion:output_type -> api.answer.listFilterQuestionResponse + 19, // 104: api.answer.Answer.listFilterUser:output_type -> api.answer.listFilterUserResponse + 22, // 105: api.answer.Answer.listRelatedQuestions:output_type -> api.answer.listRelatedQuestionsResponse + 31, // 106: api.answer.Answer.questionDetailPage:output_type -> api.answer.questionDetailPageResponse + 34, // 107: api.answer.Answer.userCenterProfilePage:output_type -> api.answer.userCenterProfilePageResponse + 37, // 108: api.answer.Answer.userCenterEditPage:output_type -> api.answer.userCenterEditPageResponse + 39, // 109: api.answer.Answer.userCenterEdit:output_type -> api.answer.userCenterEditResponse + 42, // 110: api.answer.Answer.userCenterInBoxPage:output_type -> api.answer.userCenterInBoxPageResponse + 44, // 111: api.answer.Answer.deleteInbox:output_type -> api.answer.deleteInboxResponse + 46, // 112: api.answer.Answer.messageSend:output_type -> api.answer.messageSendResponse + 49, // 113: api.answer.Answer.messageDetailPage:output_type -> api.answer.messageDetailPageResponse + 52, // 114: api.answer.Answer.userCenterPointsPage:output_type -> api.answer.userCenterPointsPageResponse + 55, // 115: api.answer.Answer.userCenterNewAnswersPage:output_type -> api.answer.userCenterNewAnswersPageResponse + 58, // 116: api.answer.Answer.userCenterNewCommentsPage:output_type -> api.answer.userCenterNewCommentsPageResponse + 63, // 117: api.answer.Answer.noticesPage:output_type -> api.answer.noticesPageResponse + 60, // 118: api.answer.Answer.captcha:output_type -> api.answer.captchaResponse + 65, // 119: api.answer.Answer.forbiddenQuestion:output_type -> api.answer.forbiddenQuestionResponse + 67, // 120: api.answer.Answer.addQuestion:output_type -> api.answer.addQuestionResponse + 69, // 121: api.answer.Answer.getEditQuestion:output_type -> api.answer.getEditQuestionResponse + 79, // 122: api.answer.Answer.addAnswer:output_type -> api.answer.addAnswerResponse + 71, // 123: api.answer.Answer.editUserLogo:output_type -> api.answer.editUserLogoResponse + 73, // 124: api.answer.Answer.deleteNode:output_type -> api.answer.deleteNodeResponse + 75, // 125: api.answer.Answer.report:output_type -> api.answer.reportResponse + 77, // 126: api.answer.Answer.forwardQuestion:output_type -> api.answer.forwardQuestionResponse + 81, // 127: api.answer.Answer.voteNodeGood:output_type -> api.answer.voteNodeGoodResponse + 83, // 128: api.answer.Answer.login:output_type -> api.answer.loginResponse + 86, // 129: api.answer.Answer.adminRolesPage:output_type -> api.answer.adminRolesPageResponse + 88, // 130: api.answer.Answer.adminUpdateRoleAction:output_type -> api.answer.adminUpdateRoleActionResponse + 91, // 131: api.answer.Answer.adminUserPage:output_type -> api.answer.adminUserPageResponse + 93, // 132: api.answer.Answer.adminUpdateUserAction:output_type -> api.answer.adminUpdateUserActionResponse + 96, // 133: api.answer.Answer.adminNodePage:output_type -> api.answer.adminNodePageResponse + 98, // 134: api.answer.Answer.updateNode:output_type -> api.answer.updateNodeResponse + 101, // 135: api.answer.Answer.helpPage:output_type -> api.answer.helpPageResponse + 103, // 136: api.answer.Answer.randQuestion:output_type -> api.answer.randQuestionResponse + 106, // 137: api.answer.Answer.exchange:output_type -> api.answer.exchangeResponse + 109, // 138: api.answer.Answer.adminExchange:output_type -> api.answer.adminExchangeResponse + 111, // 139: api.answer.Answer.exchangeAction:output_type -> api.answer.exchangeActionResponse + 114, // 140: api.answer.Answer.adminPointsPage:output_type -> api.answer.adminPointsPageResponse + 116, // 141: api.answer.Answer.adminAddPointAction:output_type -> api.answer.adminAddPointActionResponse + 118, // 142: api.answer.Answer.redirect:output_type -> api.answer.redirectResponse + 120, // 143: api.answer.Answer.clearCheckTimeAction:output_type -> api.answer.clearCheckTimeActionResponse + 125, // 144: api.answer.Answer.adminSearchHelp:output_type -> api.answer.adminSearchHelpResponse + 122, // 145: api.answer.Answer.adminAddHelp:output_type -> api.answer.adminAddHelpResponse + 128, // 146: api.answer.Answer.adminGetHelp:output_type -> api.answer.adminGetHelpResponse + 130, // 147: api.answer.Answer.adminDeleteHelp:output_type -> api.answer.adminDeleteHelpResponse + 133, // 148: api.answer.Answer.adminSearchExchange:output_type -> api.answer.adminSearchExchangeResponse + 135, // 149: api.answer.Answer.adminAddExchange:output_type -> api.answer.adminAddExchangeResponse + 137, // 150: api.answer.Answer.adminDeleteExchange:output_type -> api.answer.adminDeleteExchangeResponse + 97, // [97:151] is the sub-list for method output_type + 43, // [43:97] is the sub-list for method input_type + 43, // [43:43] is the sub-list for extension type_name + 43, // [43:43] is the sub-list for extension extendee + 0, // [0:43] is the sub-list for field type_name +} + +func init() { file_user_proto_init() } +func file_user_proto_init() { + if File_user_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListCategoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListCategoryResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListCategoryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListQuestionPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListQuestionPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListQuestionPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListAnswerOfTheDayRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListAnswerOfTheDayResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListAnswerOfTheDayResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserRightInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserRightInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListHotTopUserRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListHotTopUserResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListHotTopUserResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFilterQuestionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFilterQuestionResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFilterQuestionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFilterUserRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFilterUserResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFilterUserResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRelatedQuestionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRelatedQuestionsResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRelatedQuestionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchQuestionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchQuestionResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchQuestionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuestionDetailPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuestionDetailPageResponseItemVote); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuestionDetailPageResponseItemUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuestionDetailPageResponseItemQuestionItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuestionDetailPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuestionDetailPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterProfilePageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterProfilePageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterProfilePageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterEditPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterEditPageData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterEditPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterEditRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterEditResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterInBoxPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterInBoxPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterInBoxPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteInboxRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteInboxResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageSendRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageSendResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageDetailPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageDetailPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageDetailPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterPointsPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterPointsPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterPointsPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterNewAnswersPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterNewAnswersPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterNewAnswersPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterNewCommentsPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterNewCommentsPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserCenterNewCommentsPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CaptchaRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CaptchaResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NoticesPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NoticesPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NoticesPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ForbiddenQuestionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ForbiddenQuestionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddQuestionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddQuestionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetEditQuestionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetEditQuestionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EditUserLogoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EditUserLogoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteNodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteNodeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReportRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReportResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ForwardQuestionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ForwardQuestionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddAnswerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddAnswerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VoteNodeGoodRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VoteNodeGoodResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoginRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoginResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminRolesPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminRolesPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminRolesPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminUpdateRoleActionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminUpdateRoleActionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminUserPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminUserPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminUserPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminUpdateUserActionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminUpdateUserActionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminNodePageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminNodePageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminNodePageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateNodeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HelpPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HelpPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HelpPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RandQuestionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RandQuestionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExchangeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExchangeResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExchangeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminExchangeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminExchangeResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminExchangeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExchangeActionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExchangeActionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminPointsPageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminPointsPageResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminPointsPageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminAddPointActionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminAddPointActionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedirectRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedirectResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClearCheckTimeActionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClearCheckTimeActionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminAddHelpRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminAddHelpResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminSearchHelpRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminSearchHelpResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminSearchHelpResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminGetHelpRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminGetHelpResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminGetHelpResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminDeleteHelpRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminDeleteHelpResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminSearchExchangeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminSearchExchangeResponseItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminSearchExchangeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminAddExchangeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminAddExchangeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminDeleteExchangeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminDeleteExchangeResponse); i { case 0: return &v.state case 1: @@ -243,7 +12396,7 @@ func file_user_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_user_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 139, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/v1/user.pb.validate.go b/proto/v1/user.pb.validate.go index f42da11..4db2310 100644 --- a/proto/v1/user.pb.validate.go +++ b/proto/v1/user.pb.validate.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-validate. DO NOT EDIT. // source: user.proto -package user +package answer import ( "bytes" @@ -35,32 +35,32 @@ var ( _ = sort.Sort ) -// Validate checks the field values on LoginRequest with the rules defined in -// the proto definition for this message. If any rules are violated, the first -// error encountered is returned, or nil if there are no violations. -func (m *LoginRequest) Validate() error { +// Validate checks the field values on ListCategoryRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListCategoryRequest) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on LoginRequest with the rules defined -// in the proto definition for this message. If any rules are violated, the -// result is a list of violation errors wrapped in LoginRequestMultiError, or -// nil if none found. -func (m *LoginRequest) ValidateAll() error { +// ValidateAll checks the field values on ListCategoryRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListCategoryRequestMultiError, or nil if none found. +func (m *ListCategoryRequest) ValidateAll() error { return m.validate(true) } -func (m *LoginRequest) validate(all bool) error { +func (m *ListCategoryRequest) validate(all bool) error { if m == nil { return nil } var errors []error - if l := utf8.RuneCountInString(m.GetUsername()); l < 4 || l > 10 { - err := LoginRequestValidationError{ - field: "Username", - reason: "value length must be between 4 and 10 runes, inclusive", + if m.GetCityId() < 0 { + err := ListCategoryRequestValidationError{ + field: "CityId", + reason: "value must be greater than or equal to 0", } if !all { return err @@ -68,10 +68,10 @@ func (m *LoginRequest) validate(all bool) error { errors = append(errors, err) } - if l := utf8.RuneCountInString(m.GetPassword()); l < 4 || l > 10 { - err := LoginRequestValidationError{ - field: "Password", - reason: "value length must be between 4 and 10 runes, inclusive", + if !_ListCategoryRequest_ListType_Pattern.MatchString(m.GetListType()) { + err := ListCategoryRequestValidationError{ + field: "ListType", + reason: "value does not match regex pattern \"^(alatest|latest|noanswer|manswer)$\"", } if !all { return err @@ -79,21 +79,132 @@ func (m *LoginRequest) validate(all bool) error { errors = append(errors, err) } - // no validation rules for FirstName + if len(errors) > 0 { + return ListCategoryRequestMultiError(errors) + } + + return nil +} + +// ListCategoryRequestMultiError is an error wrapping multiple validation +// errors returned by ListCategoryRequest.ValidateAll() if the designated +// constraints aren't met. +type ListCategoryRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListCategoryRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListCategoryRequestMultiError) AllErrors() []error { return m } + +// ListCategoryRequestValidationError is the validation error returned by +// ListCategoryRequest.Validate if the designated constraints aren't met. +type ListCategoryRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListCategoryRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListCategoryRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListCategoryRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListCategoryRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListCategoryRequestValidationError) ErrorName() string { + return "ListCategoryRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ListCategoryRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListCategoryRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListCategoryRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListCategoryRequestValidationError{} + +var _ListCategoryRequest_ListType_Pattern = regexp.MustCompile("^(alatest|latest|noanswer|manswer)$") + +// Validate checks the field values on ListCategoryResponseItem with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListCategoryResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListCategoryResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListCategoryResponseItemMultiError, or nil if none found. +func (m *ListCategoryResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *ListCategoryResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Title + + // no validation rules for Url + + // no validation rules for IsNew + + // no validation rules for Num if len(errors) > 0 { - return LoginRequestMultiError(errors) + return ListCategoryResponseItemMultiError(errors) } return nil } -// LoginRequestMultiError is an error wrapping multiple validation errors -// returned by LoginRequest.ValidateAll() if the designated constraints aren't met. -type LoginRequestMultiError []error +// ListCategoryResponseItemMultiError is an error wrapping multiple validation +// errors returned by ListCategoryResponseItem.ValidateAll() if the designated +// constraints aren't met. +type ListCategoryResponseItemMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m LoginRequestMultiError) Error() string { +func (m ListCategoryResponseItemMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -102,11 +213,11 @@ func (m LoginRequestMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m LoginRequestMultiError) AllErrors() []error { return m } +func (m ListCategoryResponseItemMultiError) AllErrors() []error { return m } -// LoginRequestValidationError is the validation error returned by -// LoginRequest.Validate if the designated constraints aren't met. -type LoginRequestValidationError struct { +// ListCategoryResponseItemValidationError is the validation error returned by +// ListCategoryResponseItem.Validate if the designated constraints aren't met. +type ListCategoryResponseItemValidationError struct { field string reason string cause error @@ -114,22 +225,24 @@ type LoginRequestValidationError struct { } // Field function returns field value. -func (e LoginRequestValidationError) Field() string { return e.field } +func (e ListCategoryResponseItemValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e LoginRequestValidationError) Reason() string { return e.reason } +func (e ListCategoryResponseItemValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e LoginRequestValidationError) Cause() error { return e.cause } +func (e ListCategoryResponseItemValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e LoginRequestValidationError) Key() bool { return e.key } +func (e ListCategoryResponseItemValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e LoginRequestValidationError) ErrorName() string { return "LoginRequestValidationError" } +func (e ListCategoryResponseItemValidationError) ErrorName() string { + return "ListCategoryResponseItemValidationError" +} // Error satisfies the builtin error interface -func (e LoginRequestValidationError) Error() string { +func (e ListCategoryResponseItemValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -141,14 +254,14 @@ func (e LoginRequestValidationError) Error() string { } return fmt.Sprintf( - "invalid %sLoginRequest.%s: %s%s", + "invalid %sListCategoryResponseItem.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = LoginRequestValidationError{} +var _ error = ListCategoryResponseItemValidationError{} var _ interface { Field() string @@ -156,46 +269,78 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = LoginRequestValidationError{} +} = ListCategoryResponseItemValidationError{} -// Validate checks the field values on LoginResponse with the rules defined in -// the proto definition for this message. If any rules are violated, the first -// error encountered is returned, or nil if there are no violations. -func (m *LoginResponse) Validate() error { +// Validate checks the field values on ListCategoryResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListCategoryResponse) Validate() error { return m.validate(false) } -// ValidateAll checks the field values on LoginResponse with the rules defined -// in the proto definition for this message. If any rules are violated, the -// result is a list of violation errors wrapped in LoginResponseMultiError, or -// nil if none found. -func (m *LoginResponse) ValidateAll() error { +// ValidateAll checks the field values on ListCategoryResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListCategoryResponseMultiError, or nil if none found. +func (m *ListCategoryResponse) ValidateAll() error { return m.validate(true) } -func (m *LoginResponse) validate(all bool) error { +func (m *ListCategoryResponse) validate(all bool) error { if m == nil { return nil } var errors []error - // no validation rules for Token + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListCategoryResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListCategoryResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListCategoryResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } if len(errors) > 0 { - return LoginResponseMultiError(errors) + return ListCategoryResponseMultiError(errors) } return nil } -// LoginResponseMultiError is an error wrapping multiple validation errors -// returned by LoginResponse.ValidateAll() if the designated constraints -// aren't met. -type LoginResponseMultiError []error +// ListCategoryResponseMultiError is an error wrapping multiple validation +// errors returned by ListCategoryResponse.ValidateAll() if the designated +// constraints aren't met. +type ListCategoryResponseMultiError []error // Error returns a concatenation of all the error messages it wraps. -func (m LoginResponseMultiError) Error() string { +func (m ListCategoryResponseMultiError) Error() string { var msgs []string for _, err := range m { msgs = append(msgs, err.Error()) @@ -204,11 +349,11 @@ func (m LoginResponseMultiError) Error() string { } // AllErrors returns a list of validation violation errors. -func (m LoginResponseMultiError) AllErrors() []error { return m } +func (m ListCategoryResponseMultiError) AllErrors() []error { return m } -// LoginResponseValidationError is the validation error returned by -// LoginResponse.Validate if the designated constraints aren't met. -type LoginResponseValidationError struct { +// ListCategoryResponseValidationError is the validation error returned by +// ListCategoryResponse.Validate if the designated constraints aren't met. +type ListCategoryResponseValidationError struct { field string reason string cause error @@ -216,22 +361,24 @@ type LoginResponseValidationError struct { } // Field function returns field value. -func (e LoginResponseValidationError) Field() string { return e.field } +func (e ListCategoryResponseValidationError) Field() string { return e.field } // Reason function returns reason value. -func (e LoginResponseValidationError) Reason() string { return e.reason } +func (e ListCategoryResponseValidationError) Reason() string { return e.reason } // Cause function returns cause value. -func (e LoginResponseValidationError) Cause() error { return e.cause } +func (e ListCategoryResponseValidationError) Cause() error { return e.cause } // Key function returns key value. -func (e LoginResponseValidationError) Key() bool { return e.key } +func (e ListCategoryResponseValidationError) Key() bool { return e.key } // ErrorName returns error name. -func (e LoginResponseValidationError) ErrorName() string { return "LoginResponseValidationError" } +func (e ListCategoryResponseValidationError) ErrorName() string { + return "ListCategoryResponseValidationError" +} // Error satisfies the builtin error interface -func (e LoginResponseValidationError) Error() string { +func (e ListCategoryResponseValidationError) Error() string { cause := "" if e.cause != nil { cause = fmt.Sprintf(" | caused by: %v", e.cause) @@ -243,14 +390,14 @@ func (e LoginResponseValidationError) Error() string { } return fmt.Sprintf( - "invalid %sLoginResponse.%s: %s%s", + "invalid %sListCategoryResponse.%s: %s%s", key, e.field, e.reason, cause) } -var _ error = LoginResponseValidationError{} +var _ error = ListCategoryResponseValidationError{} var _ interface { Field() string @@ -258,4 +405,16250 @@ var _ interface { Key() bool Cause() error ErrorName() string -} = LoginResponseValidationError{} +} = ListCategoryResponseValidationError{} + +// Validate checks the field values on ListQuestionPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListQuestionPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListQuestionPageRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListQuestionPageRequestMultiError, or nil if none found. +func (m *ListQuestionPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ListQuestionPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for QuestionType + + // no validation rules for CityId + + // no validation rules for CategoryId + + // no validation rules for Page + + // no validation rules for CreateDay + + if len(errors) > 0 { + return ListQuestionPageRequestMultiError(errors) + } + + return nil +} + +// ListQuestionPageRequestMultiError is an error wrapping multiple validation +// errors returned by ListQuestionPageRequest.ValidateAll() if the designated +// constraints aren't met. +type ListQuestionPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListQuestionPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListQuestionPageRequestMultiError) AllErrors() []error { return m } + +// ListQuestionPageRequestValidationError is the validation error returned by +// ListQuestionPageRequest.Validate if the designated constraints aren't met. +type ListQuestionPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListQuestionPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListQuestionPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListQuestionPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListQuestionPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListQuestionPageRequestValidationError) ErrorName() string { + return "ListQuestionPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ListQuestionPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListQuestionPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListQuestionPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListQuestionPageRequestValidationError{} + +// Validate checks the field values on ListQuestionPageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListQuestionPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListQuestionPageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListQuestionPageResponseItemMultiError, or nil if none found. +func (m *ListQuestionPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *ListQuestionPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + // no validation rules for UserLogo + + // no validation rules for UserLevel + + // no validation rules for UserName + + // no validation rules for Title + + // no validation rules for Url + + // no validation rules for LastTimeTitle + + // no validation rules for LastTimeTitleUrl + + // no validation rules for City + + // no validation rules for CityUrl + + // no validation rules for Category + + // no validation rules for CategoryUrl + + // no validation rules for AnswerCount + + // no validation rules for ViewCount + + // no validation rules for CommentCount + + // no validation rules for IsNew + + if len(errors) > 0 { + return ListQuestionPageResponseItemMultiError(errors) + } + + return nil +} + +// ListQuestionPageResponseItemMultiError is an error wrapping multiple +// validation errors returned by ListQuestionPageResponseItem.ValidateAll() if +// the designated constraints aren't met. +type ListQuestionPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListQuestionPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListQuestionPageResponseItemMultiError) AllErrors() []error { return m } + +// ListQuestionPageResponseItemValidationError is the validation error returned +// by ListQuestionPageResponseItem.Validate if the designated constraints +// aren't met. +type ListQuestionPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListQuestionPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListQuestionPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListQuestionPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListQuestionPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListQuestionPageResponseItemValidationError) ErrorName() string { + return "ListQuestionPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e ListQuestionPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListQuestionPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListQuestionPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListQuestionPageResponseItemValidationError{} + +// Validate checks the field values on ListQuestionPageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListQuestionPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListQuestionPageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListQuestionPageResponseMultiError, or nil if none found. +func (m *ListQuestionPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ListQuestionPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListQuestionPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListQuestionPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListQuestionPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return ListQuestionPageResponseMultiError(errors) + } + + return nil +} + +// ListQuestionPageResponseMultiError is an error wrapping multiple validation +// errors returned by ListQuestionPageResponse.ValidateAll() if the designated +// constraints aren't met. +type ListQuestionPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListQuestionPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListQuestionPageResponseMultiError) AllErrors() []error { return m } + +// ListQuestionPageResponseValidationError is the validation error returned by +// ListQuestionPageResponse.Validate if the designated constraints aren't met. +type ListQuestionPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListQuestionPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListQuestionPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListQuestionPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListQuestionPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListQuestionPageResponseValidationError) ErrorName() string { + return "ListQuestionPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ListQuestionPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListQuestionPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListQuestionPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListQuestionPageResponseValidationError{} + +// Validate checks the field values on ListAnswerOfTheDayRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListAnswerOfTheDayRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListAnswerOfTheDayRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListAnswerOfTheDayRequestMultiError, or nil if none found. +func (m *ListAnswerOfTheDayRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ListAnswerOfTheDayRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Page + + if _, ok := _ListAnswerOfTheDayRequest_Size_InLookup[m.GetSize()]; !ok { + err := ListAnswerOfTheDayRequestValidationError{ + field: "Size", + reason: "value must be in list [1 20]", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return ListAnswerOfTheDayRequestMultiError(errors) + } + + return nil +} + +// ListAnswerOfTheDayRequestMultiError is an error wrapping multiple validation +// errors returned by ListAnswerOfTheDayRequest.ValidateAll() if the +// designated constraints aren't met. +type ListAnswerOfTheDayRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListAnswerOfTheDayRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListAnswerOfTheDayRequestMultiError) AllErrors() []error { return m } + +// ListAnswerOfTheDayRequestValidationError is the validation error returned by +// ListAnswerOfTheDayRequest.Validate if the designated constraints aren't met. +type ListAnswerOfTheDayRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListAnswerOfTheDayRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListAnswerOfTheDayRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListAnswerOfTheDayRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListAnswerOfTheDayRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListAnswerOfTheDayRequestValidationError) ErrorName() string { + return "ListAnswerOfTheDayRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ListAnswerOfTheDayRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListAnswerOfTheDayRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListAnswerOfTheDayRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListAnswerOfTheDayRequestValidationError{} + +var _ListAnswerOfTheDayRequest_Size_InLookup = map[int32]struct{}{ + 1: {}, + 20: {}, +} + +// Validate checks the field values on ListAnswerOfTheDayResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListAnswerOfTheDayResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListAnswerOfTheDayResponseItem with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// ListAnswerOfTheDayResponseItemMultiError, or nil if none found. +func (m *ListAnswerOfTheDayResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *ListAnswerOfTheDayResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Title + + // no validation rules for Url + + // no validation rules for PostTime + + // no validation rules for Content + + // no validation rules for AnsweredName + + // no validation rules for ShortContent + + if len(errors) > 0 { + return ListAnswerOfTheDayResponseItemMultiError(errors) + } + + return nil +} + +// ListAnswerOfTheDayResponseItemMultiError is an error wrapping multiple +// validation errors returned by ListAnswerOfTheDayResponseItem.ValidateAll() +// if the designated constraints aren't met. +type ListAnswerOfTheDayResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListAnswerOfTheDayResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListAnswerOfTheDayResponseItemMultiError) AllErrors() []error { return m } + +// ListAnswerOfTheDayResponseItemValidationError is the validation error +// returned by ListAnswerOfTheDayResponseItem.Validate if the designated +// constraints aren't met. +type ListAnswerOfTheDayResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListAnswerOfTheDayResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListAnswerOfTheDayResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListAnswerOfTheDayResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListAnswerOfTheDayResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListAnswerOfTheDayResponseItemValidationError) ErrorName() string { + return "ListAnswerOfTheDayResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e ListAnswerOfTheDayResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListAnswerOfTheDayResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListAnswerOfTheDayResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListAnswerOfTheDayResponseItemValidationError{} + +// Validate checks the field values on ListAnswerOfTheDayResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListAnswerOfTheDayResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListAnswerOfTheDayResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListAnswerOfTheDayResponseMultiError, or nil if none found. +func (m *ListAnswerOfTheDayResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ListAnswerOfTheDayResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListAnswerOfTheDayResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListAnswerOfTheDayResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListAnswerOfTheDayResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Num + + if len(errors) > 0 { + return ListAnswerOfTheDayResponseMultiError(errors) + } + + return nil +} + +// ListAnswerOfTheDayResponseMultiError is an error wrapping multiple +// validation errors returned by ListAnswerOfTheDayResponse.ValidateAll() if +// the designated constraints aren't met. +type ListAnswerOfTheDayResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListAnswerOfTheDayResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListAnswerOfTheDayResponseMultiError) AllErrors() []error { return m } + +// ListAnswerOfTheDayResponseValidationError is the validation error returned +// by ListAnswerOfTheDayResponse.Validate if the designated constraints aren't met. +type ListAnswerOfTheDayResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListAnswerOfTheDayResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListAnswerOfTheDayResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListAnswerOfTheDayResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListAnswerOfTheDayResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListAnswerOfTheDayResponseValidationError) ErrorName() string { + return "ListAnswerOfTheDayResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ListAnswerOfTheDayResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListAnswerOfTheDayResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListAnswerOfTheDayResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListAnswerOfTheDayResponseValidationError{} + +// Validate checks the field values on UserRightInfoRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserRightInfoRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserRightInfoRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserRightInfoRequestMultiError, or nil if none found. +func (m *UserRightInfoRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UserRightInfoRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return UserRightInfoRequestMultiError(errors) + } + + return nil +} + +// UserRightInfoRequestMultiError is an error wrapping multiple validation +// errors returned by UserRightInfoRequest.ValidateAll() if the designated +// constraints aren't met. +type UserRightInfoRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserRightInfoRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserRightInfoRequestMultiError) AllErrors() []error { return m } + +// UserRightInfoRequestValidationError is the validation error returned by +// UserRightInfoRequest.Validate if the designated constraints aren't met. +type UserRightInfoRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserRightInfoRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserRightInfoRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserRightInfoRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserRightInfoRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserRightInfoRequestValidationError) ErrorName() string { + return "UserRightInfoRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UserRightInfoRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserRightInfoRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserRightInfoRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserRightInfoRequestValidationError{} + +// Validate checks the field values on UserRightInfoResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserRightInfoResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserRightInfoResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserRightInfoResponseMultiError, or nil if none found. +func (m *UserRightInfoResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *UserRightInfoResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + // no validation rules for UserName + + // no validation rules for Photo + + // no validation rules for Point + + // no validation rules for MessageCount + + // no validation rules for NewNotice + + // no validation rules for NewAnswer + + // no validation rules for NewComment + + // no validation rules for UserLevel + + // no validation rules for AdminLevel + + // no validation rules for Email + + if len(errors) > 0 { + return UserRightInfoResponseMultiError(errors) + } + + return nil +} + +// UserRightInfoResponseMultiError is an error wrapping multiple validation +// errors returned by UserRightInfoResponse.ValidateAll() if the designated +// constraints aren't met. +type UserRightInfoResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserRightInfoResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserRightInfoResponseMultiError) AllErrors() []error { return m } + +// UserRightInfoResponseValidationError is the validation error returned by +// UserRightInfoResponse.Validate if the designated constraints aren't met. +type UserRightInfoResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserRightInfoResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserRightInfoResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserRightInfoResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserRightInfoResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserRightInfoResponseValidationError) ErrorName() string { + return "UserRightInfoResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e UserRightInfoResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserRightInfoResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserRightInfoResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserRightInfoResponseValidationError{} + +// Validate checks the field values on ListHotTopUserRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListHotTopUserRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListHotTopUserRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListHotTopUserRequestMultiError, or nil if none found. +func (m *ListHotTopUserRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ListHotTopUserRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return ListHotTopUserRequestMultiError(errors) + } + + return nil +} + +// ListHotTopUserRequestMultiError is an error wrapping multiple validation +// errors returned by ListHotTopUserRequest.ValidateAll() if the designated +// constraints aren't met. +type ListHotTopUserRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListHotTopUserRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListHotTopUserRequestMultiError) AllErrors() []error { return m } + +// ListHotTopUserRequestValidationError is the validation error returned by +// ListHotTopUserRequest.Validate if the designated constraints aren't met. +type ListHotTopUserRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListHotTopUserRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListHotTopUserRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListHotTopUserRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListHotTopUserRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListHotTopUserRequestValidationError) ErrorName() string { + return "ListHotTopUserRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ListHotTopUserRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListHotTopUserRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListHotTopUserRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListHotTopUserRequestValidationError{} + +// Validate checks the field values on ListHotTopUserResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListHotTopUserResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListHotTopUserResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListHotTopUserResponseItemMultiError, or nil if none found. +func (m *ListHotTopUserResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *ListHotTopUserResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Name + + // no validation rules for Photo + + // no validation rules for UserId + + if len(errors) > 0 { + return ListHotTopUserResponseItemMultiError(errors) + } + + return nil +} + +// ListHotTopUserResponseItemMultiError is an error wrapping multiple +// validation errors returned by ListHotTopUserResponseItem.ValidateAll() if +// the designated constraints aren't met. +type ListHotTopUserResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListHotTopUserResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListHotTopUserResponseItemMultiError) AllErrors() []error { return m } + +// ListHotTopUserResponseItemValidationError is the validation error returned +// by ListHotTopUserResponseItem.Validate if the designated constraints aren't met. +type ListHotTopUserResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListHotTopUserResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListHotTopUserResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListHotTopUserResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListHotTopUserResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListHotTopUserResponseItemValidationError) ErrorName() string { + return "ListHotTopUserResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e ListHotTopUserResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListHotTopUserResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListHotTopUserResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListHotTopUserResponseItemValidationError{} + +// Validate checks the field values on ListHotTopUserResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListHotTopUserResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListHotTopUserResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListHotTopUserResponseMultiError, or nil if none found. +func (m *ListHotTopUserResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ListHotTopUserResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetHots() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListHotTopUserResponseValidationError{ + field: fmt.Sprintf("Hots[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListHotTopUserResponseValidationError{ + field: fmt.Sprintf("Hots[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListHotTopUserResponseValidationError{ + field: fmt.Sprintf("Hots[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + for idx, item := range m.GetTops() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListHotTopUserResponseValidationError{ + field: fmt.Sprintf("Tops[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListHotTopUserResponseValidationError{ + field: fmt.Sprintf("Tops[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListHotTopUserResponseValidationError{ + field: fmt.Sprintf("Tops[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for GuestCount + + if len(errors) > 0 { + return ListHotTopUserResponseMultiError(errors) + } + + return nil +} + +// ListHotTopUserResponseMultiError is an error wrapping multiple validation +// errors returned by ListHotTopUserResponse.ValidateAll() if the designated +// constraints aren't met. +type ListHotTopUserResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListHotTopUserResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListHotTopUserResponseMultiError) AllErrors() []error { return m } + +// ListHotTopUserResponseValidationError is the validation error returned by +// ListHotTopUserResponse.Validate if the designated constraints aren't met. +type ListHotTopUserResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListHotTopUserResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListHotTopUserResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListHotTopUserResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListHotTopUserResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListHotTopUserResponseValidationError) ErrorName() string { + return "ListHotTopUserResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ListHotTopUserResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListHotTopUserResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListHotTopUserResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListHotTopUserResponseValidationError{} + +// Validate checks the field values on ListFilterQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListFilterQuestionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListFilterQuestionRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListFilterQuestionRequestMultiError, or nil if none found. +func (m *ListFilterQuestionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ListFilterQuestionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if utf8.RuneCountInString(m.GetTitle()) < 1 { + err := ListFilterQuestionRequestValidationError{ + field: "Title", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return ListFilterQuestionRequestMultiError(errors) + } + + return nil +} + +// ListFilterQuestionRequestMultiError is an error wrapping multiple validation +// errors returned by ListFilterQuestionRequest.ValidateAll() if the +// designated constraints aren't met. +type ListFilterQuestionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListFilterQuestionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListFilterQuestionRequestMultiError) AllErrors() []error { return m } + +// ListFilterQuestionRequestValidationError is the validation error returned by +// ListFilterQuestionRequest.Validate if the designated constraints aren't met. +type ListFilterQuestionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListFilterQuestionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListFilterQuestionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListFilterQuestionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListFilterQuestionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListFilterQuestionRequestValidationError) ErrorName() string { + return "ListFilterQuestionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ListFilterQuestionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListFilterQuestionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListFilterQuestionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListFilterQuestionRequestValidationError{} + +// Validate checks the field values on ListFilterQuestionResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListFilterQuestionResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListFilterQuestionResponseItem with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// ListFilterQuestionResponseItemMultiError, or nil if none found. +func (m *ListFilterQuestionResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *ListFilterQuestionResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Title + + // no validation rules for Url + + if len(errors) > 0 { + return ListFilterQuestionResponseItemMultiError(errors) + } + + return nil +} + +// ListFilterQuestionResponseItemMultiError is an error wrapping multiple +// validation errors returned by ListFilterQuestionResponseItem.ValidateAll() +// if the designated constraints aren't met. +type ListFilterQuestionResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListFilterQuestionResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListFilterQuestionResponseItemMultiError) AllErrors() []error { return m } + +// ListFilterQuestionResponseItemValidationError is the validation error +// returned by ListFilterQuestionResponseItem.Validate if the designated +// constraints aren't met. +type ListFilterQuestionResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListFilterQuestionResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListFilterQuestionResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListFilterQuestionResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListFilterQuestionResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListFilterQuestionResponseItemValidationError) ErrorName() string { + return "ListFilterQuestionResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e ListFilterQuestionResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListFilterQuestionResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListFilterQuestionResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListFilterQuestionResponseItemValidationError{} + +// Validate checks the field values on ListFilterQuestionResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListFilterQuestionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListFilterQuestionResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListFilterQuestionResponseMultiError, or nil if none found. +func (m *ListFilterQuestionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ListFilterQuestionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListFilterQuestionResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListFilterQuestionResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListFilterQuestionResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return ListFilterQuestionResponseMultiError(errors) + } + + return nil +} + +// ListFilterQuestionResponseMultiError is an error wrapping multiple +// validation errors returned by ListFilterQuestionResponse.ValidateAll() if +// the designated constraints aren't met. +type ListFilterQuestionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListFilterQuestionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListFilterQuestionResponseMultiError) AllErrors() []error { return m } + +// ListFilterQuestionResponseValidationError is the validation error returned +// by ListFilterQuestionResponse.Validate if the designated constraints aren't met. +type ListFilterQuestionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListFilterQuestionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListFilterQuestionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListFilterQuestionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListFilterQuestionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListFilterQuestionResponseValidationError) ErrorName() string { + return "ListFilterQuestionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ListFilterQuestionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListFilterQuestionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListFilterQuestionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListFilterQuestionResponseValidationError{} + +// Validate checks the field values on ListFilterUserRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListFilterUserRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListFilterUserRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListFilterUserRequestMultiError, or nil if none found. +func (m *ListFilterUserRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ListFilterUserRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if utf8.RuneCountInString(m.GetUser()) < 1 { + err := ListFilterUserRequestValidationError{ + field: "User", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return ListFilterUserRequestMultiError(errors) + } + + return nil +} + +// ListFilterUserRequestMultiError is an error wrapping multiple validation +// errors returned by ListFilterUserRequest.ValidateAll() if the designated +// constraints aren't met. +type ListFilterUserRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListFilterUserRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListFilterUserRequestMultiError) AllErrors() []error { return m } + +// ListFilterUserRequestValidationError is the validation error returned by +// ListFilterUserRequest.Validate if the designated constraints aren't met. +type ListFilterUserRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListFilterUserRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListFilterUserRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListFilterUserRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListFilterUserRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListFilterUserRequestValidationError) ErrorName() string { + return "ListFilterUserRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ListFilterUserRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListFilterUserRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListFilterUserRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListFilterUserRequestValidationError{} + +// Validate checks the field values on ListFilterUserResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListFilterUserResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListFilterUserResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListFilterUserResponseItemMultiError, or nil if none found. +func (m *ListFilterUserResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *ListFilterUserResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + // no validation rules for UserName + + if len(errors) > 0 { + return ListFilterUserResponseItemMultiError(errors) + } + + return nil +} + +// ListFilterUserResponseItemMultiError is an error wrapping multiple +// validation errors returned by ListFilterUserResponseItem.ValidateAll() if +// the designated constraints aren't met. +type ListFilterUserResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListFilterUserResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListFilterUserResponseItemMultiError) AllErrors() []error { return m } + +// ListFilterUserResponseItemValidationError is the validation error returned +// by ListFilterUserResponseItem.Validate if the designated constraints aren't met. +type ListFilterUserResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListFilterUserResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListFilterUserResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListFilterUserResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListFilterUserResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListFilterUserResponseItemValidationError) ErrorName() string { + return "ListFilterUserResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e ListFilterUserResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListFilterUserResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListFilterUserResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListFilterUserResponseItemValidationError{} + +// Validate checks the field values on ListFilterUserResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListFilterUserResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListFilterUserResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListFilterUserResponseMultiError, or nil if none found. +func (m *ListFilterUserResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ListFilterUserResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListFilterUserResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListFilterUserResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListFilterUserResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return ListFilterUserResponseMultiError(errors) + } + + return nil +} + +// ListFilterUserResponseMultiError is an error wrapping multiple validation +// errors returned by ListFilterUserResponse.ValidateAll() if the designated +// constraints aren't met. +type ListFilterUserResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListFilterUserResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListFilterUserResponseMultiError) AllErrors() []error { return m } + +// ListFilterUserResponseValidationError is the validation error returned by +// ListFilterUserResponse.Validate if the designated constraints aren't met. +type ListFilterUserResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListFilterUserResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListFilterUserResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListFilterUserResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListFilterUserResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListFilterUserResponseValidationError) ErrorName() string { + return "ListFilterUserResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ListFilterUserResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListFilterUserResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListFilterUserResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListFilterUserResponseValidationError{} + +// Validate checks the field values on ListRelatedQuestionsRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListRelatedQuestionsRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListRelatedQuestionsRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListRelatedQuestionsRequestMultiError, or nil if none found. +func (m *ListRelatedQuestionsRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ListRelatedQuestionsRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for CityId + + // no validation rules for CategoryId + + if len(errors) > 0 { + return ListRelatedQuestionsRequestMultiError(errors) + } + + return nil +} + +// ListRelatedQuestionsRequestMultiError is an error wrapping multiple +// validation errors returned by ListRelatedQuestionsRequest.ValidateAll() if +// the designated constraints aren't met. +type ListRelatedQuestionsRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListRelatedQuestionsRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListRelatedQuestionsRequestMultiError) AllErrors() []error { return m } + +// ListRelatedQuestionsRequestValidationError is the validation error returned +// by ListRelatedQuestionsRequest.Validate if the designated constraints +// aren't met. +type ListRelatedQuestionsRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListRelatedQuestionsRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListRelatedQuestionsRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListRelatedQuestionsRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListRelatedQuestionsRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListRelatedQuestionsRequestValidationError) ErrorName() string { + return "ListRelatedQuestionsRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ListRelatedQuestionsRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListRelatedQuestionsRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListRelatedQuestionsRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListRelatedQuestionsRequestValidationError{} + +// Validate checks the field values on ListRelatedQuestionsResponseItem with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *ListRelatedQuestionsResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListRelatedQuestionsResponseItem with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// ListRelatedQuestionsResponseItemMultiError, or nil if none found. +func (m *ListRelatedQuestionsResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *ListRelatedQuestionsResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Title + + // no validation rules for Url + + // no validation rules for PostTime + + if len(errors) > 0 { + return ListRelatedQuestionsResponseItemMultiError(errors) + } + + return nil +} + +// ListRelatedQuestionsResponseItemMultiError is an error wrapping multiple +// validation errors returned by +// ListRelatedQuestionsResponseItem.ValidateAll() if the designated +// constraints aren't met. +type ListRelatedQuestionsResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListRelatedQuestionsResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListRelatedQuestionsResponseItemMultiError) AllErrors() []error { return m } + +// ListRelatedQuestionsResponseItemValidationError is the validation error +// returned by ListRelatedQuestionsResponseItem.Validate if the designated +// constraints aren't met. +type ListRelatedQuestionsResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListRelatedQuestionsResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListRelatedQuestionsResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListRelatedQuestionsResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListRelatedQuestionsResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListRelatedQuestionsResponseItemValidationError) ErrorName() string { + return "ListRelatedQuestionsResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e ListRelatedQuestionsResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListRelatedQuestionsResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListRelatedQuestionsResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListRelatedQuestionsResponseItemValidationError{} + +// Validate checks the field values on ListRelatedQuestionsResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ListRelatedQuestionsResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListRelatedQuestionsResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ListRelatedQuestionsResponseMultiError, or nil if none found. +func (m *ListRelatedQuestionsResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ListRelatedQuestionsResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListRelatedQuestionsResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListRelatedQuestionsResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListRelatedQuestionsResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return ListRelatedQuestionsResponseMultiError(errors) + } + + return nil +} + +// ListRelatedQuestionsResponseMultiError is an error wrapping multiple +// validation errors returned by ListRelatedQuestionsResponse.ValidateAll() if +// the designated constraints aren't met. +type ListRelatedQuestionsResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListRelatedQuestionsResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListRelatedQuestionsResponseMultiError) AllErrors() []error { return m } + +// ListRelatedQuestionsResponseValidationError is the validation error returned +// by ListRelatedQuestionsResponse.Validate if the designated constraints +// aren't met. +type ListRelatedQuestionsResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListRelatedQuestionsResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListRelatedQuestionsResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListRelatedQuestionsResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListRelatedQuestionsResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListRelatedQuestionsResponseValidationError) ErrorName() string { + return "ListRelatedQuestionsResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ListRelatedQuestionsResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sListRelatedQuestionsResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListRelatedQuestionsResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListRelatedQuestionsResponseValidationError{} + +// Validate checks the field values on SearchQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *SearchQuestionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on SearchQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// SearchQuestionRequestMultiError, or nil if none found. +func (m *SearchQuestionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *SearchQuestionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Keyword + + // no validation rules for Page + + if len(errors) > 0 { + return SearchQuestionRequestMultiError(errors) + } + + return nil +} + +// SearchQuestionRequestMultiError is an error wrapping multiple validation +// errors returned by SearchQuestionRequest.ValidateAll() if the designated +// constraints aren't met. +type SearchQuestionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m SearchQuestionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m SearchQuestionRequestMultiError) AllErrors() []error { return m } + +// SearchQuestionRequestValidationError is the validation error returned by +// SearchQuestionRequest.Validate if the designated constraints aren't met. +type SearchQuestionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SearchQuestionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SearchQuestionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SearchQuestionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SearchQuestionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SearchQuestionRequestValidationError) ErrorName() string { + return "SearchQuestionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e SearchQuestionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSearchQuestionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SearchQuestionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SearchQuestionRequestValidationError{} + +// Validate checks the field values on SearchQuestionResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *SearchQuestionResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on SearchQuestionResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// SearchQuestionResponseItemMultiError, or nil if none found. +func (m *SearchQuestionResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *SearchQuestionResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + // no validation rules for UserLogo + + // no validation rules for UserName + + // no validation rules for Title + + // no validation rules for Url + + // no validation rules for PostTime + + // no validation rules for City + + // no validation rules for CityUrl + + // no validation rules for Category + + // no validation rules for CategoryUrl + + // no validation rules for AnswerCount + + // no validation rules for Content + + if len(errors) > 0 { + return SearchQuestionResponseItemMultiError(errors) + } + + return nil +} + +// SearchQuestionResponseItemMultiError is an error wrapping multiple +// validation errors returned by SearchQuestionResponseItem.ValidateAll() if +// the designated constraints aren't met. +type SearchQuestionResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m SearchQuestionResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m SearchQuestionResponseItemMultiError) AllErrors() []error { return m } + +// SearchQuestionResponseItemValidationError is the validation error returned +// by SearchQuestionResponseItem.Validate if the designated constraints aren't met. +type SearchQuestionResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SearchQuestionResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SearchQuestionResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SearchQuestionResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SearchQuestionResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SearchQuestionResponseItemValidationError) ErrorName() string { + return "SearchQuestionResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e SearchQuestionResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSearchQuestionResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SearchQuestionResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SearchQuestionResponseItemValidationError{} + +// Validate checks the field values on SearchQuestionResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *SearchQuestionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on SearchQuestionResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// SearchQuestionResponseMultiError, or nil if none found. +func (m *SearchQuestionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *SearchQuestionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, SearchQuestionResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, SearchQuestionResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SearchQuestionResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return SearchQuestionResponseMultiError(errors) + } + + return nil +} + +// SearchQuestionResponseMultiError is an error wrapping multiple validation +// errors returned by SearchQuestionResponse.ValidateAll() if the designated +// constraints aren't met. +type SearchQuestionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m SearchQuestionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m SearchQuestionResponseMultiError) AllErrors() []error { return m } + +// SearchQuestionResponseValidationError is the validation error returned by +// SearchQuestionResponse.Validate if the designated constraints aren't met. +type SearchQuestionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SearchQuestionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SearchQuestionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SearchQuestionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SearchQuestionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SearchQuestionResponseValidationError) ErrorName() string { + return "SearchQuestionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e SearchQuestionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSearchQuestionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SearchQuestionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SearchQuestionResponseValidationError{} + +// Validate checks the field values on QuestionDetailPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *QuestionDetailPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on QuestionDetailPageRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// QuestionDetailPageRequestMultiError, or nil if none found. +func (m *QuestionDetailPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *QuestionDetailPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for AliasKey + + // no validation rules for NodeId + + // no validation rules for Page + + if len(errors) > 0 { + return QuestionDetailPageRequestMultiError(errors) + } + + return nil +} + +// QuestionDetailPageRequestMultiError is an error wrapping multiple validation +// errors returned by QuestionDetailPageRequest.ValidateAll() if the +// designated constraints aren't met. +type QuestionDetailPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m QuestionDetailPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m QuestionDetailPageRequestMultiError) AllErrors() []error { return m } + +// QuestionDetailPageRequestValidationError is the validation error returned by +// QuestionDetailPageRequest.Validate if the designated constraints aren't met. +type QuestionDetailPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e QuestionDetailPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e QuestionDetailPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e QuestionDetailPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e QuestionDetailPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e QuestionDetailPageRequestValidationError) ErrorName() string { + return "QuestionDetailPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e QuestionDetailPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sQuestionDetailPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = QuestionDetailPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = QuestionDetailPageRequestValidationError{} + +// Validate checks the field values on QuestionDetailPageResponseItemVote with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *QuestionDetailPageResponseItemVote) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on QuestionDetailPageResponseItemVote +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// QuestionDetailPageResponseItemVoteMultiError, or nil if none found. +func (m *QuestionDetailPageResponseItemVote) ValidateAll() error { + return m.validate(true) +} + +func (m *QuestionDetailPageResponseItemVote) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Good + + // no validation rules for Bad + + // no validation rules for Vote + + // no validation rules for Status + + if len(errors) > 0 { + return QuestionDetailPageResponseItemVoteMultiError(errors) + } + + return nil +} + +// QuestionDetailPageResponseItemVoteMultiError is an error wrapping multiple +// validation errors returned by +// QuestionDetailPageResponseItemVote.ValidateAll() if the designated +// constraints aren't met. +type QuestionDetailPageResponseItemVoteMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m QuestionDetailPageResponseItemVoteMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m QuestionDetailPageResponseItemVoteMultiError) AllErrors() []error { return m } + +// QuestionDetailPageResponseItemVoteValidationError is the validation error +// returned by QuestionDetailPageResponseItemVote.Validate if the designated +// constraints aren't met. +type QuestionDetailPageResponseItemVoteValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e QuestionDetailPageResponseItemVoteValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e QuestionDetailPageResponseItemVoteValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e QuestionDetailPageResponseItemVoteValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e QuestionDetailPageResponseItemVoteValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e QuestionDetailPageResponseItemVoteValidationError) ErrorName() string { + return "QuestionDetailPageResponseItemVoteValidationError" +} + +// Error satisfies the builtin error interface +func (e QuestionDetailPageResponseItemVoteValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sQuestionDetailPageResponseItemVote.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = QuestionDetailPageResponseItemVoteValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = QuestionDetailPageResponseItemVoteValidationError{} + +// Validate checks the field values on QuestionDetailPageResponseItemUser with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *QuestionDetailPageResponseItemUser) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on QuestionDetailPageResponseItemUser +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// QuestionDetailPageResponseItemUserMultiError, or nil if none found. +func (m *QuestionDetailPageResponseItemUser) ValidateAll() error { + return m.validate(true) +} + +func (m *QuestionDetailPageResponseItemUser) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Logo + + // no validation rules for Name + + // no validation rules for PostNum + + // no validation rules for Level + + // no validation rules for UserId + + // no validation rules for IsAnonymous + + // no validation rules for Signature + + if len(errors) > 0 { + return QuestionDetailPageResponseItemUserMultiError(errors) + } + + return nil +} + +// QuestionDetailPageResponseItemUserMultiError is an error wrapping multiple +// validation errors returned by +// QuestionDetailPageResponseItemUser.ValidateAll() if the designated +// constraints aren't met. +type QuestionDetailPageResponseItemUserMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m QuestionDetailPageResponseItemUserMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m QuestionDetailPageResponseItemUserMultiError) AllErrors() []error { return m } + +// QuestionDetailPageResponseItemUserValidationError is the validation error +// returned by QuestionDetailPageResponseItemUser.Validate if the designated +// constraints aren't met. +type QuestionDetailPageResponseItemUserValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e QuestionDetailPageResponseItemUserValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e QuestionDetailPageResponseItemUserValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e QuestionDetailPageResponseItemUserValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e QuestionDetailPageResponseItemUserValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e QuestionDetailPageResponseItemUserValidationError) ErrorName() string { + return "QuestionDetailPageResponseItemUserValidationError" +} + +// Error satisfies the builtin error interface +func (e QuestionDetailPageResponseItemUserValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sQuestionDetailPageResponseItemUser.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = QuestionDetailPageResponseItemUserValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = QuestionDetailPageResponseItemUserValidationError{} + +// Validate checks the field values on +// QuestionDetailPageResponseItemQuestionItem with the rules defined in the +// proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *QuestionDetailPageResponseItemQuestionItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// QuestionDetailPageResponseItemQuestionItem with the rules defined in the +// proto definition for this message. If any rules are violated, the result is +// a list of violation errors wrapped in +// QuestionDetailPageResponseItemQuestionItemMultiError, or nil if none found. +func (m *QuestionDetailPageResponseItemQuestionItem) ValidateAll() error { + return m.validate(true) +} + +func (m *QuestionDetailPageResponseItemQuestionItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Forbidden + + // no validation rules for City + + // no validation rules for CityUrl + + // no validation rules for Category + + // no validation rules for CategoryUrl + + // no validation rules for Title + + // no validation rules for CityId + + // no validation rules for CategoryId + + if len(errors) > 0 { + return QuestionDetailPageResponseItemQuestionItemMultiError(errors) + } + + return nil +} + +// QuestionDetailPageResponseItemQuestionItemMultiError is an error wrapping +// multiple validation errors returned by +// QuestionDetailPageResponseItemQuestionItem.ValidateAll() if the designated +// constraints aren't met. +type QuestionDetailPageResponseItemQuestionItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m QuestionDetailPageResponseItemQuestionItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m QuestionDetailPageResponseItemQuestionItemMultiError) AllErrors() []error { return m } + +// QuestionDetailPageResponseItemQuestionItemValidationError is the validation +// error returned by QuestionDetailPageResponseItemQuestionItem.Validate if +// the designated constraints aren't met. +type QuestionDetailPageResponseItemQuestionItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e QuestionDetailPageResponseItemQuestionItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e QuestionDetailPageResponseItemQuestionItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e QuestionDetailPageResponseItemQuestionItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e QuestionDetailPageResponseItemQuestionItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e QuestionDetailPageResponseItemQuestionItemValidationError) ErrorName() string { + return "QuestionDetailPageResponseItemQuestionItemValidationError" +} + +// Error satisfies the builtin error interface +func (e QuestionDetailPageResponseItemQuestionItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sQuestionDetailPageResponseItemQuestionItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = QuestionDetailPageResponseItemQuestionItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = QuestionDetailPageResponseItemQuestionItemValidationError{} + +// Validate checks the field values on QuestionDetailPageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *QuestionDetailPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on QuestionDetailPageResponseItem with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// QuestionDetailPageResponseItemMultiError, or nil if none found. +func (m *QuestionDetailPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *QuestionDetailPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for CanManage + + // no validation rules for Content + + // no validation rules for IsDel + + // no validation rules for PostTime + + // no validation rules for CommentNum + + if all { + switch v := interface{}(m.GetVote()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, QuestionDetailPageResponseItemValidationError{ + field: "Vote", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, QuestionDetailPageResponseItemValidationError{ + field: "Vote", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetVote()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QuestionDetailPageResponseItemValidationError{ + field: "Vote", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetUser()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, QuestionDetailPageResponseItemValidationError{ + field: "User", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, QuestionDetailPageResponseItemValidationError{ + field: "User", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetUser()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QuestionDetailPageResponseItemValidationError{ + field: "User", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetQuestion()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, QuestionDetailPageResponseItemValidationError{ + field: "Question", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, QuestionDetailPageResponseItemValidationError{ + field: "Question", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQuestion()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QuestionDetailPageResponseItemValidationError{ + field: "Question", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetComments() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, QuestionDetailPageResponseItemValidationError{ + field: fmt.Sprintf("Comments[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, QuestionDetailPageResponseItemValidationError{ + field: fmt.Sprintf("Comments[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QuestionDetailPageResponseItemValidationError{ + field: fmt.Sprintf("Comments[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return QuestionDetailPageResponseItemMultiError(errors) + } + + return nil +} + +// QuestionDetailPageResponseItemMultiError is an error wrapping multiple +// validation errors returned by QuestionDetailPageResponseItem.ValidateAll() +// if the designated constraints aren't met. +type QuestionDetailPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m QuestionDetailPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m QuestionDetailPageResponseItemMultiError) AllErrors() []error { return m } + +// QuestionDetailPageResponseItemValidationError is the validation error +// returned by QuestionDetailPageResponseItem.Validate if the designated +// constraints aren't met. +type QuestionDetailPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e QuestionDetailPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e QuestionDetailPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e QuestionDetailPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e QuestionDetailPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e QuestionDetailPageResponseItemValidationError) ErrorName() string { + return "QuestionDetailPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e QuestionDetailPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sQuestionDetailPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = QuestionDetailPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = QuestionDetailPageResponseItemValidationError{} + +// Validate checks the field values on QuestionDetailPageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *QuestionDetailPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on QuestionDetailPageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// QuestionDetailPageResponseMultiError, or nil if none found. +func (m *QuestionDetailPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *QuestionDetailPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetQuestion()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, QuestionDetailPageResponseValidationError{ + field: "Question", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, QuestionDetailPageResponseValidationError{ + field: "Question", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetQuestion()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QuestionDetailPageResponseValidationError{ + field: "Question", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetHighestVoted()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, QuestionDetailPageResponseValidationError{ + field: "HighestVoted", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, QuestionDetailPageResponseValidationError{ + field: "HighestVoted", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetHighestVoted()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QuestionDetailPageResponseValidationError{ + field: "HighestVoted", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetAnswers() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, QuestionDetailPageResponseValidationError{ + field: fmt.Sprintf("Answers[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, QuestionDetailPageResponseValidationError{ + field: fmt.Sprintf("Answers[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QuestionDetailPageResponseValidationError{ + field: fmt.Sprintf("Answers[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for AnswerCount + + // no validation rules for CommentCount + + if len(errors) > 0 { + return QuestionDetailPageResponseMultiError(errors) + } + + return nil +} + +// QuestionDetailPageResponseMultiError is an error wrapping multiple +// validation errors returned by QuestionDetailPageResponse.ValidateAll() if +// the designated constraints aren't met. +type QuestionDetailPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m QuestionDetailPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m QuestionDetailPageResponseMultiError) AllErrors() []error { return m } + +// QuestionDetailPageResponseValidationError is the validation error returned +// by QuestionDetailPageResponse.Validate if the designated constraints aren't met. +type QuestionDetailPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e QuestionDetailPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e QuestionDetailPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e QuestionDetailPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e QuestionDetailPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e QuestionDetailPageResponseValidationError) ErrorName() string { + return "QuestionDetailPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e QuestionDetailPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sQuestionDetailPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = QuestionDetailPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = QuestionDetailPageResponseValidationError{} + +// Validate checks the field values on UserCenterProfilePageRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterProfilePageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterProfilePageRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserCenterProfilePageRequestMultiError, or nil if none found. +func (m *UserCenterProfilePageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterProfilePageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetUserId() < 1 { + err := UserCenterProfilePageRequestValidationError{ + field: "UserId", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for QuestionPage + + // no validation rules for AnswerPage + + if len(errors) > 0 { + return UserCenterProfilePageRequestMultiError(errors) + } + + return nil +} + +// UserCenterProfilePageRequestMultiError is an error wrapping multiple +// validation errors returned by UserCenterProfilePageRequest.ValidateAll() if +// the designated constraints aren't met. +type UserCenterProfilePageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterProfilePageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterProfilePageRequestMultiError) AllErrors() []error { return m } + +// UserCenterProfilePageRequestValidationError is the validation error returned +// by UserCenterProfilePageRequest.Validate if the designated constraints +// aren't met. +type UserCenterProfilePageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterProfilePageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterProfilePageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterProfilePageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterProfilePageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterProfilePageRequestValidationError) ErrorName() string { + return "UserCenterProfilePageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterProfilePageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterProfilePageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterProfilePageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterProfilePageRequestValidationError{} + +// Validate checks the field values on UserCenterProfilePageResponseItem with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *UserCenterProfilePageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterProfilePageResponseItem +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// UserCenterProfilePageResponseItemMultiError, or nil if none found. +func (m *UserCenterProfilePageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterProfilePageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Title + + // no validation rules for PostTime + + // no validation rules for AnswerNum + + // no validation rules for Url + + // no validation rules for IsDel + + if len(errors) > 0 { + return UserCenterProfilePageResponseItemMultiError(errors) + } + + return nil +} + +// UserCenterProfilePageResponseItemMultiError is an error wrapping multiple +// validation errors returned by +// UserCenterProfilePageResponseItem.ValidateAll() if the designated +// constraints aren't met. +type UserCenterProfilePageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterProfilePageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterProfilePageResponseItemMultiError) AllErrors() []error { return m } + +// UserCenterProfilePageResponseItemValidationError is the validation error +// returned by UserCenterProfilePageResponseItem.Validate if the designated +// constraints aren't met. +type UserCenterProfilePageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterProfilePageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterProfilePageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterProfilePageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterProfilePageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterProfilePageResponseItemValidationError) ErrorName() string { + return "UserCenterProfilePageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterProfilePageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterProfilePageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterProfilePageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterProfilePageResponseItemValidationError{} + +// Validate checks the field values on UserCenterProfilePageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterProfilePageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterProfilePageResponse with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// UserCenterProfilePageResponseMultiError, or nil if none found. +func (m *UserCenterProfilePageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterProfilePageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Online + + // no validation rules for UserName + + // no validation rules for Photo + + // no validation rules for Point + + // no validation rules for RegisterTime + + // no validation rules for UserLevel + + // no validation rules for AboutMe + + // no validation rules for Interests + + // no validation rules for Skype + + // no validation rules for Email + + // no validation rules for Google + + // no validation rules for QuestionCount + + for idx, item := range m.GetQuestions() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UserCenterProfilePageResponseValidationError{ + field: fmt.Sprintf("Questions[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UserCenterProfilePageResponseValidationError{ + field: fmt.Sprintf("Questions[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UserCenterProfilePageResponseValidationError{ + field: fmt.Sprintf("Questions[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for AnswerCount + + for idx, item := range m.GetAnswers() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UserCenterProfilePageResponseValidationError{ + field: fmt.Sprintf("Answers[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UserCenterProfilePageResponseValidationError{ + field: fmt.Sprintf("Answers[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UserCenterProfilePageResponseValidationError{ + field: fmt.Sprintf("Answers[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return UserCenterProfilePageResponseMultiError(errors) + } + + return nil +} + +// UserCenterProfilePageResponseMultiError is an error wrapping multiple +// validation errors returned by UserCenterProfilePageResponse.ValidateAll() +// if the designated constraints aren't met. +type UserCenterProfilePageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterProfilePageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterProfilePageResponseMultiError) AllErrors() []error { return m } + +// UserCenterProfilePageResponseValidationError is the validation error +// returned by UserCenterProfilePageResponse.Validate if the designated +// constraints aren't met. +type UserCenterProfilePageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterProfilePageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterProfilePageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterProfilePageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterProfilePageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterProfilePageResponseValidationError) ErrorName() string { + return "UserCenterProfilePageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterProfilePageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterProfilePageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterProfilePageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterProfilePageResponseValidationError{} + +// Validate checks the field values on UserCenterEditPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterEditPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterEditPageRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserCenterEditPageRequestMultiError, or nil if none found. +func (m *UserCenterEditPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterEditPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + if len(errors) > 0 { + return UserCenterEditPageRequestMultiError(errors) + } + + return nil +} + +// UserCenterEditPageRequestMultiError is an error wrapping multiple validation +// errors returned by UserCenterEditPageRequest.ValidateAll() if the +// designated constraints aren't met. +type UserCenterEditPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterEditPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterEditPageRequestMultiError) AllErrors() []error { return m } + +// UserCenterEditPageRequestValidationError is the validation error returned by +// UserCenterEditPageRequest.Validate if the designated constraints aren't met. +type UserCenterEditPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterEditPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterEditPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterEditPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterEditPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterEditPageRequestValidationError) ErrorName() string { + return "UserCenterEditPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterEditPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterEditPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterEditPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterEditPageRequestValidationError{} + +// Validate checks the field values on UserCenterEditPageData with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterEditPageData) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterEditPageData with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserCenterEditPageDataMultiError, or nil if none found. +func (m *UserCenterEditPageData) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterEditPageData) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Signature + + // no validation rules for AboutMe + + // no validation rules for Interests + + // no validation rules for Email + + // no validation rules for Google + + // no validation rules for Skype + + // no validation rules for IsPlainText + + // no validation rules for IsNotify + + // no validation rules for UserId + + if len(errors) > 0 { + return UserCenterEditPageDataMultiError(errors) + } + + return nil +} + +// UserCenterEditPageDataMultiError is an error wrapping multiple validation +// errors returned by UserCenterEditPageData.ValidateAll() if the designated +// constraints aren't met. +type UserCenterEditPageDataMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterEditPageDataMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterEditPageDataMultiError) AllErrors() []error { return m } + +// UserCenterEditPageDataValidationError is the validation error returned by +// UserCenterEditPageData.Validate if the designated constraints aren't met. +type UserCenterEditPageDataValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterEditPageDataValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterEditPageDataValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterEditPageDataValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterEditPageDataValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterEditPageDataValidationError) ErrorName() string { + return "UserCenterEditPageDataValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterEditPageDataValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterEditPageData.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterEditPageDataValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterEditPageDataValidationError{} + +// Validate checks the field values on UserCenterEditPageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterEditPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterEditPageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserCenterEditPageResponseMultiError, or nil if none found. +func (m *UserCenterEditPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterEditPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetData()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UserCenterEditPageResponseValidationError{ + field: "Data", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UserCenterEditPageResponseValidationError{ + field: "Data", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetData()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UserCenterEditPageResponseValidationError{ + field: "Data", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return UserCenterEditPageResponseMultiError(errors) + } + + return nil +} + +// UserCenterEditPageResponseMultiError is an error wrapping multiple +// validation errors returned by UserCenterEditPageResponse.ValidateAll() if +// the designated constraints aren't met. +type UserCenterEditPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterEditPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterEditPageResponseMultiError) AllErrors() []error { return m } + +// UserCenterEditPageResponseValidationError is the validation error returned +// by UserCenterEditPageResponse.Validate if the designated constraints aren't met. +type UserCenterEditPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterEditPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterEditPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterEditPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterEditPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterEditPageResponseValidationError) ErrorName() string { + return "UserCenterEditPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterEditPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterEditPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterEditPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterEditPageResponseValidationError{} + +// Validate checks the field values on UserCenterEditRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterEditRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterEditRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserCenterEditRequestMultiError, or nil if none found. +func (m *UserCenterEditRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterEditRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetData()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UserCenterEditRequestValidationError{ + field: "Data", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UserCenterEditRequestValidationError{ + field: "Data", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetData()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UserCenterEditRequestValidationError{ + field: "Data", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for UserId + + if len(errors) > 0 { + return UserCenterEditRequestMultiError(errors) + } + + return nil +} + +// UserCenterEditRequestMultiError is an error wrapping multiple validation +// errors returned by UserCenterEditRequest.ValidateAll() if the designated +// constraints aren't met. +type UserCenterEditRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterEditRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterEditRequestMultiError) AllErrors() []error { return m } + +// UserCenterEditRequestValidationError is the validation error returned by +// UserCenterEditRequest.Validate if the designated constraints aren't met. +type UserCenterEditRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterEditRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterEditRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterEditRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterEditRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterEditRequestValidationError) ErrorName() string { + return "UserCenterEditRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterEditRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterEditRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterEditRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterEditRequestValidationError{} + +// Validate checks the field values on UserCenterEditResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterEditResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterEditResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserCenterEditResponseMultiError, or nil if none found. +func (m *UserCenterEditResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterEditResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return UserCenterEditResponseMultiError(errors) + } + + return nil +} + +// UserCenterEditResponseMultiError is an error wrapping multiple validation +// errors returned by UserCenterEditResponse.ValidateAll() if the designated +// constraints aren't met. +type UserCenterEditResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterEditResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterEditResponseMultiError) AllErrors() []error { return m } + +// UserCenterEditResponseValidationError is the validation error returned by +// UserCenterEditResponse.Validate if the designated constraints aren't met. +type UserCenterEditResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterEditResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterEditResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterEditResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterEditResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterEditResponseValidationError) ErrorName() string { + return "UserCenterEditResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterEditResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterEditResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterEditResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterEditResponseValidationError{} + +// Validate checks the field values on UserCenterInBoxPageRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterInBoxPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterInBoxPageRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserCenterInBoxPageRequestMultiError, or nil if none found. +func (m *UserCenterInBoxPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterInBoxPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + // no validation rules for Page + + if len(errors) > 0 { + return UserCenterInBoxPageRequestMultiError(errors) + } + + return nil +} + +// UserCenterInBoxPageRequestMultiError is an error wrapping multiple +// validation errors returned by UserCenterInBoxPageRequest.ValidateAll() if +// the designated constraints aren't met. +type UserCenterInBoxPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterInBoxPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterInBoxPageRequestMultiError) AllErrors() []error { return m } + +// UserCenterInBoxPageRequestValidationError is the validation error returned +// by UserCenterInBoxPageRequest.Validate if the designated constraints aren't met. +type UserCenterInBoxPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterInBoxPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterInBoxPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterInBoxPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterInBoxPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterInBoxPageRequestValidationError) ErrorName() string { + return "UserCenterInBoxPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterInBoxPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterInBoxPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterInBoxPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterInBoxPageRequestValidationError{} + +// Validate checks the field values on UserCenterInBoxPageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterInBoxPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterInBoxPageResponseItem with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// UserCenterInBoxPageResponseItemMultiError, or nil if none found. +func (m *UserCenterInBoxPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterInBoxPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for UserName + + // no validation rules for UserId + + // no validation rules for IsNew + + // no validation rules for Subject + + // no validation rules for LastTime + + if len(errors) > 0 { + return UserCenterInBoxPageResponseItemMultiError(errors) + } + + return nil +} + +// UserCenterInBoxPageResponseItemMultiError is an error wrapping multiple +// validation errors returned by UserCenterInBoxPageResponseItem.ValidateAll() +// if the designated constraints aren't met. +type UserCenterInBoxPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterInBoxPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterInBoxPageResponseItemMultiError) AllErrors() []error { return m } + +// UserCenterInBoxPageResponseItemValidationError is the validation error +// returned by UserCenterInBoxPageResponseItem.Validate if the designated +// constraints aren't met. +type UserCenterInBoxPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterInBoxPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterInBoxPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterInBoxPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterInBoxPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterInBoxPageResponseItemValidationError) ErrorName() string { + return "UserCenterInBoxPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterInBoxPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterInBoxPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterInBoxPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterInBoxPageResponseItemValidationError{} + +// Validate checks the field values on UserCenterInBoxPageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterInBoxPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterInBoxPageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserCenterInBoxPageResponseMultiError, or nil if none found. +func (m *UserCenterInBoxPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterInBoxPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UserCenterInBoxPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UserCenterInBoxPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UserCenterInBoxPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return UserCenterInBoxPageResponseMultiError(errors) + } + + return nil +} + +// UserCenterInBoxPageResponseMultiError is an error wrapping multiple +// validation errors returned by UserCenterInBoxPageResponse.ValidateAll() if +// the designated constraints aren't met. +type UserCenterInBoxPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterInBoxPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterInBoxPageResponseMultiError) AllErrors() []error { return m } + +// UserCenterInBoxPageResponseValidationError is the validation error returned +// by UserCenterInBoxPageResponse.Validate if the designated constraints +// aren't met. +type UserCenterInBoxPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterInBoxPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterInBoxPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterInBoxPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterInBoxPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterInBoxPageResponseValidationError) ErrorName() string { + return "UserCenterInBoxPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterInBoxPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterInBoxPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterInBoxPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterInBoxPageResponseValidationError{} + +// Validate checks the field values on DeleteInboxRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *DeleteInboxRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteInboxRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteInboxRequestMultiError, or nil if none found. +func (m *DeleteInboxRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteInboxRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + if len(errors) > 0 { + return DeleteInboxRequestMultiError(errors) + } + + return nil +} + +// DeleteInboxRequestMultiError is an error wrapping multiple validation errors +// returned by DeleteInboxRequest.ValidateAll() if the designated constraints +// aren't met. +type DeleteInboxRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteInboxRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteInboxRequestMultiError) AllErrors() []error { return m } + +// DeleteInboxRequestValidationError is the validation error returned by +// DeleteInboxRequest.Validate if the designated constraints aren't met. +type DeleteInboxRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteInboxRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteInboxRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteInboxRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteInboxRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteInboxRequestValidationError) ErrorName() string { + return "DeleteInboxRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteInboxRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteInboxRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteInboxRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteInboxRequestValidationError{} + +// Validate checks the field values on DeleteInboxResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *DeleteInboxResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteInboxResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteInboxResponseMultiError, or nil if none found. +func (m *DeleteInboxResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteInboxResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return DeleteInboxResponseMultiError(errors) + } + + return nil +} + +// DeleteInboxResponseMultiError is an error wrapping multiple validation +// errors returned by DeleteInboxResponse.ValidateAll() if the designated +// constraints aren't met. +type DeleteInboxResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteInboxResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteInboxResponseMultiError) AllErrors() []error { return m } + +// DeleteInboxResponseValidationError is the validation error returned by +// DeleteInboxResponse.Validate if the designated constraints aren't met. +type DeleteInboxResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteInboxResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteInboxResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteInboxResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteInboxResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteInboxResponseValidationError) ErrorName() string { + return "DeleteInboxResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteInboxResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteInboxResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteInboxResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteInboxResponseValidationError{} + +// Validate checks the field values on MessageSendRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *MessageSendRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MessageSendRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// MessageSendRequestMultiError, or nil if none found. +func (m *MessageSendRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *MessageSendRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Subject + + if utf8.RuneCountInString(m.GetContent()) < 1 { + err := MessageSendRequestValidationError{ + field: "Content", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for ThreadId + + if len(errors) > 0 { + return MessageSendRequestMultiError(errors) + } + + return nil +} + +// MessageSendRequestMultiError is an error wrapping multiple validation errors +// returned by MessageSendRequest.ValidateAll() if the designated constraints +// aren't met. +type MessageSendRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MessageSendRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m MessageSendRequestMultiError) AllErrors() []error { return m } + +// MessageSendRequestValidationError is the validation error returned by +// MessageSendRequest.Validate if the designated constraints aren't met. +type MessageSendRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MessageSendRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MessageSendRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MessageSendRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MessageSendRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MessageSendRequestValidationError) ErrorName() string { + return "MessageSendRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e MessageSendRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMessageSendRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MessageSendRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MessageSendRequestValidationError{} + +// Validate checks the field values on MessageSendResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *MessageSendResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MessageSendResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// MessageSendResponseMultiError, or nil if none found. +func (m *MessageSendResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *MessageSendResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + if len(errors) > 0 { + return MessageSendResponseMultiError(errors) + } + + return nil +} + +// MessageSendResponseMultiError is an error wrapping multiple validation +// errors returned by MessageSendResponse.ValidateAll() if the designated +// constraints aren't met. +type MessageSendResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MessageSendResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m MessageSendResponseMultiError) AllErrors() []error { return m } + +// MessageSendResponseValidationError is the validation error returned by +// MessageSendResponse.Validate if the designated constraints aren't met. +type MessageSendResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MessageSendResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MessageSendResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MessageSendResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MessageSendResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MessageSendResponseValidationError) ErrorName() string { + return "MessageSendResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e MessageSendResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMessageSendResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MessageSendResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MessageSendResponseValidationError{} + +// Validate checks the field values on MessageDetailPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *MessageDetailPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MessageDetailPageRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// MessageDetailPageRequestMultiError, or nil if none found. +func (m *MessageDetailPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *MessageDetailPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for MessageId + + // no validation rules for Page + + if len(errors) > 0 { + return MessageDetailPageRequestMultiError(errors) + } + + return nil +} + +// MessageDetailPageRequestMultiError is an error wrapping multiple validation +// errors returned by MessageDetailPageRequest.ValidateAll() if the designated +// constraints aren't met. +type MessageDetailPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MessageDetailPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m MessageDetailPageRequestMultiError) AllErrors() []error { return m } + +// MessageDetailPageRequestValidationError is the validation error returned by +// MessageDetailPageRequest.Validate if the designated constraints aren't met. +type MessageDetailPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MessageDetailPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MessageDetailPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MessageDetailPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MessageDetailPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MessageDetailPageRequestValidationError) ErrorName() string { + return "MessageDetailPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e MessageDetailPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMessageDetailPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MessageDetailPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MessageDetailPageRequestValidationError{} + +// Validate checks the field values on MessageDetailPageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *MessageDetailPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MessageDetailPageResponseItem with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// MessageDetailPageResponseItemMultiError, or nil if none found. +func (m *MessageDetailPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *MessageDetailPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + // no validation rules for Photo + + // no validation rules for UserName + + // no validation rules for PostTime + + // no validation rules for Id + + // no validation rules for Content + + // no validation rules for IsNew + + if len(errors) > 0 { + return MessageDetailPageResponseItemMultiError(errors) + } + + return nil +} + +// MessageDetailPageResponseItemMultiError is an error wrapping multiple +// validation errors returned by MessageDetailPageResponseItem.ValidateAll() +// if the designated constraints aren't met. +type MessageDetailPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MessageDetailPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m MessageDetailPageResponseItemMultiError) AllErrors() []error { return m } + +// MessageDetailPageResponseItemValidationError is the validation error +// returned by MessageDetailPageResponseItem.Validate if the designated +// constraints aren't met. +type MessageDetailPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MessageDetailPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MessageDetailPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MessageDetailPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MessageDetailPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MessageDetailPageResponseItemValidationError) ErrorName() string { + return "MessageDetailPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e MessageDetailPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMessageDetailPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MessageDetailPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MessageDetailPageResponseItemValidationError{} + +// Validate checks the field values on MessageDetailPageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *MessageDetailPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on MessageDetailPageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// MessageDetailPageResponseMultiError, or nil if none found. +func (m *MessageDetailPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *MessageDetailPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, MessageDetailPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, MessageDetailPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return MessageDetailPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for FromName + + // no validation rules for Count + + // no validation rules for ThreadId + + if len(errors) > 0 { + return MessageDetailPageResponseMultiError(errors) + } + + return nil +} + +// MessageDetailPageResponseMultiError is an error wrapping multiple validation +// errors returned by MessageDetailPageResponse.ValidateAll() if the +// designated constraints aren't met. +type MessageDetailPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m MessageDetailPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m MessageDetailPageResponseMultiError) AllErrors() []error { return m } + +// MessageDetailPageResponseValidationError is the validation error returned by +// MessageDetailPageResponse.Validate if the designated constraints aren't met. +type MessageDetailPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e MessageDetailPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e MessageDetailPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e MessageDetailPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e MessageDetailPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e MessageDetailPageResponseValidationError) ErrorName() string { + return "MessageDetailPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e MessageDetailPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sMessageDetailPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = MessageDetailPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = MessageDetailPageResponseValidationError{} + +// Validate checks the field values on UserCenterPointsPageRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterPointsPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterPointsPageRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserCenterPointsPageRequestMultiError, or nil if none found. +func (m *UserCenterPointsPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterPointsPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + // no validation rules for Page + + if len(errors) > 0 { + return UserCenterPointsPageRequestMultiError(errors) + } + + return nil +} + +// UserCenterPointsPageRequestMultiError is an error wrapping multiple +// validation errors returned by UserCenterPointsPageRequest.ValidateAll() if +// the designated constraints aren't met. +type UserCenterPointsPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterPointsPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterPointsPageRequestMultiError) AllErrors() []error { return m } + +// UserCenterPointsPageRequestValidationError is the validation error returned +// by UserCenterPointsPageRequest.Validate if the designated constraints +// aren't met. +type UserCenterPointsPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterPointsPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterPointsPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterPointsPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterPointsPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterPointsPageRequestValidationError) ErrorName() string { + return "UserCenterPointsPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterPointsPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterPointsPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterPointsPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterPointsPageRequestValidationError{} + +// Validate checks the field values on UserCenterPointsPageResponseItem with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *UserCenterPointsPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterPointsPageResponseItem with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// UserCenterPointsPageResponseItemMultiError, or nil if none found. +func (m *UserCenterPointsPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterPointsPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Point + + // no validation rules for Url + + // no validation rules for DoTime + + // no validation rules for PointType + + // no validation rules for Id + + if len(errors) > 0 { + return UserCenterPointsPageResponseItemMultiError(errors) + } + + return nil +} + +// UserCenterPointsPageResponseItemMultiError is an error wrapping multiple +// validation errors returned by +// UserCenterPointsPageResponseItem.ValidateAll() if the designated +// constraints aren't met. +type UserCenterPointsPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterPointsPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterPointsPageResponseItemMultiError) AllErrors() []error { return m } + +// UserCenterPointsPageResponseItemValidationError is the validation error +// returned by UserCenterPointsPageResponseItem.Validate if the designated +// constraints aren't met. +type UserCenterPointsPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterPointsPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterPointsPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterPointsPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterPointsPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterPointsPageResponseItemValidationError) ErrorName() string { + return "UserCenterPointsPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterPointsPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterPointsPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterPointsPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterPointsPageResponseItemValidationError{} + +// Validate checks the field values on UserCenterPointsPageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterPointsPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterPointsPageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UserCenterPointsPageResponseMultiError, or nil if none found. +func (m *UserCenterPointsPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterPointsPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UserCenterPointsPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UserCenterPointsPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UserCenterPointsPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + // no validation rules for AllPoints + + if len(errors) > 0 { + return UserCenterPointsPageResponseMultiError(errors) + } + + return nil +} + +// UserCenterPointsPageResponseMultiError is an error wrapping multiple +// validation errors returned by UserCenterPointsPageResponse.ValidateAll() if +// the designated constraints aren't met. +type UserCenterPointsPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterPointsPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterPointsPageResponseMultiError) AllErrors() []error { return m } + +// UserCenterPointsPageResponseValidationError is the validation error returned +// by UserCenterPointsPageResponse.Validate if the designated constraints +// aren't met. +type UserCenterPointsPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterPointsPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterPointsPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterPointsPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterPointsPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterPointsPageResponseValidationError) ErrorName() string { + return "UserCenterPointsPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterPointsPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterPointsPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterPointsPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterPointsPageResponseValidationError{} + +// Validate checks the field values on UserCenterNewAnswersPageRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UserCenterNewAnswersPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterNewAnswersPageRequest with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// UserCenterNewAnswersPageRequestMultiError, or nil if none found. +func (m *UserCenterNewAnswersPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterNewAnswersPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + // no validation rules for Page + + if len(errors) > 0 { + return UserCenterNewAnswersPageRequestMultiError(errors) + } + + return nil +} + +// UserCenterNewAnswersPageRequestMultiError is an error wrapping multiple +// validation errors returned by UserCenterNewAnswersPageRequest.ValidateAll() +// if the designated constraints aren't met. +type UserCenterNewAnswersPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterNewAnswersPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterNewAnswersPageRequestMultiError) AllErrors() []error { return m } + +// UserCenterNewAnswersPageRequestValidationError is the validation error +// returned by UserCenterNewAnswersPageRequest.Validate if the designated +// constraints aren't met. +type UserCenterNewAnswersPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterNewAnswersPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterNewAnswersPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterNewAnswersPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterNewAnswersPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterNewAnswersPageRequestValidationError) ErrorName() string { + return "UserCenterNewAnswersPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterNewAnswersPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterNewAnswersPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterNewAnswersPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterNewAnswersPageRequestValidationError{} + +// Validate checks the field values on UserCenterNewAnswersPageResponseItem +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *UserCenterNewAnswersPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterNewAnswersPageResponseItem +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// UserCenterNewAnswersPageResponseItemMultiError, or nil if none found. +func (m *UserCenterNewAnswersPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterNewAnswersPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + // no validation rules for UserName + + // no validation rules for Logo + + // no validation rules for Answer + + // no validation rules for AnswerTime + + // no validation rules for AnswerUrl + + // no validation rules for QuestionUrl + + // no validation rules for Question + + // no validation rules for Id + + if len(errors) > 0 { + return UserCenterNewAnswersPageResponseItemMultiError(errors) + } + + return nil +} + +// UserCenterNewAnswersPageResponseItemMultiError is an error wrapping multiple +// validation errors returned by +// UserCenterNewAnswersPageResponseItem.ValidateAll() if the designated +// constraints aren't met. +type UserCenterNewAnswersPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterNewAnswersPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterNewAnswersPageResponseItemMultiError) AllErrors() []error { return m } + +// UserCenterNewAnswersPageResponseItemValidationError is the validation error +// returned by UserCenterNewAnswersPageResponseItem.Validate if the designated +// constraints aren't met. +type UserCenterNewAnswersPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterNewAnswersPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterNewAnswersPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterNewAnswersPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterNewAnswersPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterNewAnswersPageResponseItemValidationError) ErrorName() string { + return "UserCenterNewAnswersPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterNewAnswersPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterNewAnswersPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterNewAnswersPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterNewAnswersPageResponseItemValidationError{} + +// Validate checks the field values on UserCenterNewAnswersPageResponse with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *UserCenterNewAnswersPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterNewAnswersPageResponse with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// UserCenterNewAnswersPageResponseMultiError, or nil if none found. +func (m *UserCenterNewAnswersPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterNewAnswersPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UserCenterNewAnswersPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UserCenterNewAnswersPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UserCenterNewAnswersPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return UserCenterNewAnswersPageResponseMultiError(errors) + } + + return nil +} + +// UserCenterNewAnswersPageResponseMultiError is an error wrapping multiple +// validation errors returned by +// UserCenterNewAnswersPageResponse.ValidateAll() if the designated +// constraints aren't met. +type UserCenterNewAnswersPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterNewAnswersPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterNewAnswersPageResponseMultiError) AllErrors() []error { return m } + +// UserCenterNewAnswersPageResponseValidationError is the validation error +// returned by UserCenterNewAnswersPageResponse.Validate if the designated +// constraints aren't met. +type UserCenterNewAnswersPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterNewAnswersPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterNewAnswersPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterNewAnswersPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterNewAnswersPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterNewAnswersPageResponseValidationError) ErrorName() string { + return "UserCenterNewAnswersPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterNewAnswersPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterNewAnswersPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterNewAnswersPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterNewAnswersPageResponseValidationError{} + +// Validate checks the field values on UserCenterNewCommentsPageRequest with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *UserCenterNewCommentsPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterNewCommentsPageRequest with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// UserCenterNewCommentsPageRequestMultiError, or nil if none found. +func (m *UserCenterNewCommentsPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterNewCommentsPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Page + + // no validation rules for UserId + + if len(errors) > 0 { + return UserCenterNewCommentsPageRequestMultiError(errors) + } + + return nil +} + +// UserCenterNewCommentsPageRequestMultiError is an error wrapping multiple +// validation errors returned by +// UserCenterNewCommentsPageRequest.ValidateAll() if the designated +// constraints aren't met. +type UserCenterNewCommentsPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterNewCommentsPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterNewCommentsPageRequestMultiError) AllErrors() []error { return m } + +// UserCenterNewCommentsPageRequestValidationError is the validation error +// returned by UserCenterNewCommentsPageRequest.Validate if the designated +// constraints aren't met. +type UserCenterNewCommentsPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterNewCommentsPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterNewCommentsPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterNewCommentsPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterNewCommentsPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterNewCommentsPageRequestValidationError) ErrorName() string { + return "UserCenterNewCommentsPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterNewCommentsPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterNewCommentsPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterNewCommentsPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterNewCommentsPageRequestValidationError{} + +// Validate checks the field values on UserCenterNewCommentsPageResponseItem +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *UserCenterNewCommentsPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterNewCommentsPageResponseItem +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// UserCenterNewCommentsPageResponseItemMultiError, or nil if none found. +func (m *UserCenterNewCommentsPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterNewCommentsPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + // no validation rules for UserName + + // no validation rules for Logo + + // no validation rules for Comment + + // no validation rules for CommentTime + + // no validation rules for CommentUrl + + // no validation rules for Answer + + // no validation rules for AnswerUrl + + // no validation rules for AnsweredId + + // no validation rules for Id + + if len(errors) > 0 { + return UserCenterNewCommentsPageResponseItemMultiError(errors) + } + + return nil +} + +// UserCenterNewCommentsPageResponseItemMultiError is an error wrapping +// multiple validation errors returned by +// UserCenterNewCommentsPageResponseItem.ValidateAll() if the designated +// constraints aren't met. +type UserCenterNewCommentsPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterNewCommentsPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterNewCommentsPageResponseItemMultiError) AllErrors() []error { return m } + +// UserCenterNewCommentsPageResponseItemValidationError is the validation error +// returned by UserCenterNewCommentsPageResponseItem.Validate if the +// designated constraints aren't met. +type UserCenterNewCommentsPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterNewCommentsPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterNewCommentsPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterNewCommentsPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterNewCommentsPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterNewCommentsPageResponseItemValidationError) ErrorName() string { + return "UserCenterNewCommentsPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterNewCommentsPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterNewCommentsPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterNewCommentsPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterNewCommentsPageResponseItemValidationError{} + +// Validate checks the field values on UserCenterNewCommentsPageResponse with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *UserCenterNewCommentsPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UserCenterNewCommentsPageResponse +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// UserCenterNewCommentsPageResponseMultiError, or nil if none found. +func (m *UserCenterNewCommentsPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *UserCenterNewCommentsPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UserCenterNewCommentsPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UserCenterNewCommentsPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UserCenterNewCommentsPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return UserCenterNewCommentsPageResponseMultiError(errors) + } + + return nil +} + +// UserCenterNewCommentsPageResponseMultiError is an error wrapping multiple +// validation errors returned by +// UserCenterNewCommentsPageResponse.ValidateAll() if the designated +// constraints aren't met. +type UserCenterNewCommentsPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UserCenterNewCommentsPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UserCenterNewCommentsPageResponseMultiError) AllErrors() []error { return m } + +// UserCenterNewCommentsPageResponseValidationError is the validation error +// returned by UserCenterNewCommentsPageResponse.Validate if the designated +// constraints aren't met. +type UserCenterNewCommentsPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UserCenterNewCommentsPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UserCenterNewCommentsPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UserCenterNewCommentsPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UserCenterNewCommentsPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UserCenterNewCommentsPageResponseValidationError) ErrorName() string { + return "UserCenterNewCommentsPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e UserCenterNewCommentsPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUserCenterNewCommentsPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UserCenterNewCommentsPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UserCenterNewCommentsPageResponseValidationError{} + +// Validate checks the field values on CaptchaRequest with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *CaptchaRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CaptchaRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in CaptchaRequestMultiError, +// or nil if none found. +func (m *CaptchaRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *CaptchaRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return CaptchaRequestMultiError(errors) + } + + return nil +} + +// CaptchaRequestMultiError is an error wrapping multiple validation errors +// returned by CaptchaRequest.ValidateAll() if the designated constraints +// aren't met. +type CaptchaRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CaptchaRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CaptchaRequestMultiError) AllErrors() []error { return m } + +// CaptchaRequestValidationError is the validation error returned by +// CaptchaRequest.Validate if the designated constraints aren't met. +type CaptchaRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CaptchaRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CaptchaRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CaptchaRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CaptchaRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CaptchaRequestValidationError) ErrorName() string { return "CaptchaRequestValidationError" } + +// Error satisfies the builtin error interface +func (e CaptchaRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCaptchaRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CaptchaRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CaptchaRequestValidationError{} + +// Validate checks the field values on CaptchaResponse with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *CaptchaResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CaptchaResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CaptchaResponseMultiError, or nil if none found. +func (m *CaptchaResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *CaptchaResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Key + + // no validation rules for Val + + if len(errors) > 0 { + return CaptchaResponseMultiError(errors) + } + + return nil +} + +// CaptchaResponseMultiError is an error wrapping multiple validation errors +// returned by CaptchaResponse.ValidateAll() if the designated constraints +// aren't met. +type CaptchaResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CaptchaResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CaptchaResponseMultiError) AllErrors() []error { return m } + +// CaptchaResponseValidationError is the validation error returned by +// CaptchaResponse.Validate if the designated constraints aren't met. +type CaptchaResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CaptchaResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CaptchaResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CaptchaResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CaptchaResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CaptchaResponseValidationError) ErrorName() string { return "CaptchaResponseValidationError" } + +// Error satisfies the builtin error interface +func (e CaptchaResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCaptchaResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CaptchaResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CaptchaResponseValidationError{} + +// Validate checks the field values on NoticesPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *NoticesPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on NoticesPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// NoticesPageRequestMultiError, or nil if none found. +func (m *NoticesPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *NoticesPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetPage() < 0 { + err := NoticesPageRequestValidationError{ + field: "Page", + reason: "value must be greater than or equal to 0", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return NoticesPageRequestMultiError(errors) + } + + return nil +} + +// NoticesPageRequestMultiError is an error wrapping multiple validation errors +// returned by NoticesPageRequest.ValidateAll() if the designated constraints +// aren't met. +type NoticesPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m NoticesPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m NoticesPageRequestMultiError) AllErrors() []error { return m } + +// NoticesPageRequestValidationError is the validation error returned by +// NoticesPageRequest.Validate if the designated constraints aren't met. +type NoticesPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e NoticesPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e NoticesPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e NoticesPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e NoticesPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e NoticesPageRequestValidationError) ErrorName() string { + return "NoticesPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e NoticesPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sNoticesPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = NoticesPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = NoticesPageRequestValidationError{} + +// Validate checks the field values on NoticesPageResponseItem with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *NoticesPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on NoticesPageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// NoticesPageResponseItemMultiError, or nil if none found. +func (m *NoticesPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *NoticesPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Title + + // no validation rules for PostTime + + // no validation rules for Content + + // no validation rules for Id + + if len(errors) > 0 { + return NoticesPageResponseItemMultiError(errors) + } + + return nil +} + +// NoticesPageResponseItemMultiError is an error wrapping multiple validation +// errors returned by NoticesPageResponseItem.ValidateAll() if the designated +// constraints aren't met. +type NoticesPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m NoticesPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m NoticesPageResponseItemMultiError) AllErrors() []error { return m } + +// NoticesPageResponseItemValidationError is the validation error returned by +// NoticesPageResponseItem.Validate if the designated constraints aren't met. +type NoticesPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e NoticesPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e NoticesPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e NoticesPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e NoticesPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e NoticesPageResponseItemValidationError) ErrorName() string { + return "NoticesPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e NoticesPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sNoticesPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = NoticesPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = NoticesPageResponseItemValidationError{} + +// Validate checks the field values on NoticesPageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *NoticesPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on NoticesPageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// NoticesPageResponseMultiError, or nil if none found. +func (m *NoticesPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *NoticesPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, NoticesPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, NoticesPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return NoticesPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return NoticesPageResponseMultiError(errors) + } + + return nil +} + +// NoticesPageResponseMultiError is an error wrapping multiple validation +// errors returned by NoticesPageResponse.ValidateAll() if the designated +// constraints aren't met. +type NoticesPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m NoticesPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m NoticesPageResponseMultiError) AllErrors() []error { return m } + +// NoticesPageResponseValidationError is the validation error returned by +// NoticesPageResponse.Validate if the designated constraints aren't met. +type NoticesPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e NoticesPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e NoticesPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e NoticesPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e NoticesPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e NoticesPageResponseValidationError) ErrorName() string { + return "NoticesPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e NoticesPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sNoticesPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = NoticesPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = NoticesPageResponseValidationError{} + +// Validate checks the field values on ForbiddenQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ForbiddenQuestionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ForbiddenQuestionRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ForbiddenQuestionRequestMultiError, or nil if none found. +func (m *ForbiddenQuestionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ForbiddenQuestionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for QuestionId + + // no validation rules for IsForbidden + + if len(errors) > 0 { + return ForbiddenQuestionRequestMultiError(errors) + } + + return nil +} + +// ForbiddenQuestionRequestMultiError is an error wrapping multiple validation +// errors returned by ForbiddenQuestionRequest.ValidateAll() if the designated +// constraints aren't met. +type ForbiddenQuestionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ForbiddenQuestionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ForbiddenQuestionRequestMultiError) AllErrors() []error { return m } + +// ForbiddenQuestionRequestValidationError is the validation error returned by +// ForbiddenQuestionRequest.Validate if the designated constraints aren't met. +type ForbiddenQuestionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ForbiddenQuestionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ForbiddenQuestionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ForbiddenQuestionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ForbiddenQuestionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ForbiddenQuestionRequestValidationError) ErrorName() string { + return "ForbiddenQuestionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ForbiddenQuestionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sForbiddenQuestionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ForbiddenQuestionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ForbiddenQuestionRequestValidationError{} + +// Validate checks the field values on ForbiddenQuestionResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ForbiddenQuestionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ForbiddenQuestionResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ForbiddenQuestionResponseMultiError, or nil if none found. +func (m *ForbiddenQuestionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ForbiddenQuestionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for IsForbidden + + if len(errors) > 0 { + return ForbiddenQuestionResponseMultiError(errors) + } + + return nil +} + +// ForbiddenQuestionResponseMultiError is an error wrapping multiple validation +// errors returned by ForbiddenQuestionResponse.ValidateAll() if the +// designated constraints aren't met. +type ForbiddenQuestionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ForbiddenQuestionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ForbiddenQuestionResponseMultiError) AllErrors() []error { return m } + +// ForbiddenQuestionResponseValidationError is the validation error returned by +// ForbiddenQuestionResponse.Validate if the designated constraints aren't met. +type ForbiddenQuestionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ForbiddenQuestionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ForbiddenQuestionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ForbiddenQuestionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ForbiddenQuestionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ForbiddenQuestionResponseValidationError) ErrorName() string { + return "ForbiddenQuestionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ForbiddenQuestionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sForbiddenQuestionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ForbiddenQuestionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ForbiddenQuestionResponseValidationError{} + +// Validate checks the field values on AddQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AddQuestionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AddQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AddQuestionRequestMultiError, or nil if none found. +func (m *AddQuestionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AddQuestionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if l := utf8.RuneCountInString(m.GetTitle()); l < 1 || l > 100 { + err := AddQuestionRequestValidationError{ + field: "Title", + reason: "value length must be between 1 and 100 runes, inclusive", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetContent()) < 1 { + err := AddQuestionRequestValidationError{ + field: "Content", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if m.GetCategoryId() < 1 { + err := AddQuestionRequestValidationError{ + field: "CategoryId", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + if m.GetCityId() < 1 { + err := AddQuestionRequestValidationError{ + field: "CityId", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for Id + + if m.GetUserId() < 1 { + err := AddQuestionRequestValidationError{ + field: "UserId", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return AddQuestionRequestMultiError(errors) + } + + return nil +} + +// AddQuestionRequestMultiError is an error wrapping multiple validation errors +// returned by AddQuestionRequest.ValidateAll() if the designated constraints +// aren't met. +type AddQuestionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AddQuestionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AddQuestionRequestMultiError) AllErrors() []error { return m } + +// AddQuestionRequestValidationError is the validation error returned by +// AddQuestionRequest.Validate if the designated constraints aren't met. +type AddQuestionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AddQuestionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AddQuestionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AddQuestionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AddQuestionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AddQuestionRequestValidationError) ErrorName() string { + return "AddQuestionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AddQuestionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAddQuestionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AddQuestionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AddQuestionRequestValidationError{} + +// Validate checks the field values on AddQuestionResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AddQuestionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AddQuestionResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AddQuestionResponseMultiError, or nil if none found. +func (m *AddQuestionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AddQuestionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Url + + if len(errors) > 0 { + return AddQuestionResponseMultiError(errors) + } + + return nil +} + +// AddQuestionResponseMultiError is an error wrapping multiple validation +// errors returned by AddQuestionResponse.ValidateAll() if the designated +// constraints aren't met. +type AddQuestionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AddQuestionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AddQuestionResponseMultiError) AllErrors() []error { return m } + +// AddQuestionResponseValidationError is the validation error returned by +// AddQuestionResponse.Validate if the designated constraints aren't met. +type AddQuestionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AddQuestionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AddQuestionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AddQuestionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AddQuestionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AddQuestionResponseValidationError) ErrorName() string { + return "AddQuestionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AddQuestionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAddQuestionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AddQuestionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AddQuestionResponseValidationError{} + +// Validate checks the field values on GetEditQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GetEditQuestionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetEditQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// GetEditQuestionRequestMultiError, or nil if none found. +func (m *GetEditQuestionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *GetEditQuestionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetNid() < 1 { + err := GetEditQuestionRequestValidationError{ + field: "Nid", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return GetEditQuestionRequestMultiError(errors) + } + + return nil +} + +// GetEditQuestionRequestMultiError is an error wrapping multiple validation +// errors returned by GetEditQuestionRequest.ValidateAll() if the designated +// constraints aren't met. +type GetEditQuestionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetEditQuestionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetEditQuestionRequestMultiError) AllErrors() []error { return m } + +// GetEditQuestionRequestValidationError is the validation error returned by +// GetEditQuestionRequest.Validate if the designated constraints aren't met. +type GetEditQuestionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetEditQuestionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetEditQuestionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetEditQuestionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetEditQuestionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetEditQuestionRequestValidationError) ErrorName() string { + return "GetEditQuestionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e GetEditQuestionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetEditQuestionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetEditQuestionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetEditQuestionRequestValidationError{} + +// Validate checks the field values on GetEditQuestionResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *GetEditQuestionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetEditQuestionResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// GetEditQuestionResponseMultiError, or nil if none found. +func (m *GetEditQuestionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *GetEditQuestionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Title + + // no validation rules for Content + + // no validation rules for CategoryId + + // no validation rules for CityId + + // no validation rules for Id + + // no validation rules for IsAnswer + + if len(errors) > 0 { + return GetEditQuestionResponseMultiError(errors) + } + + return nil +} + +// GetEditQuestionResponseMultiError is an error wrapping multiple validation +// errors returned by GetEditQuestionResponse.ValidateAll() if the designated +// constraints aren't met. +type GetEditQuestionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetEditQuestionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetEditQuestionResponseMultiError) AllErrors() []error { return m } + +// GetEditQuestionResponseValidationError is the validation error returned by +// GetEditQuestionResponse.Validate if the designated constraints aren't met. +type GetEditQuestionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetEditQuestionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetEditQuestionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetEditQuestionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetEditQuestionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetEditQuestionResponseValidationError) ErrorName() string { + return "GetEditQuestionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e GetEditQuestionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sGetEditQuestionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetEditQuestionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetEditQuestionResponseValidationError{} + +// Validate checks the field values on EditUserLogoRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *EditUserLogoRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on EditUserLogoRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// EditUserLogoRequestMultiError, or nil if none found. +func (m *EditUserLogoRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *EditUserLogoRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for ImageData + + // no validation rules for UserId + + if len(errors) > 0 { + return EditUserLogoRequestMultiError(errors) + } + + return nil +} + +// EditUserLogoRequestMultiError is an error wrapping multiple validation +// errors returned by EditUserLogoRequest.ValidateAll() if the designated +// constraints aren't met. +type EditUserLogoRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m EditUserLogoRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m EditUserLogoRequestMultiError) AllErrors() []error { return m } + +// EditUserLogoRequestValidationError is the validation error returned by +// EditUserLogoRequest.Validate if the designated constraints aren't met. +type EditUserLogoRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e EditUserLogoRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e EditUserLogoRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e EditUserLogoRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e EditUserLogoRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e EditUserLogoRequestValidationError) ErrorName() string { + return "EditUserLogoRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e EditUserLogoRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sEditUserLogoRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = EditUserLogoRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = EditUserLogoRequestValidationError{} + +// Validate checks the field values on EditUserLogoResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *EditUserLogoResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on EditUserLogoResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// EditUserLogoResponseMultiError, or nil if none found. +func (m *EditUserLogoResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *EditUserLogoResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Url + + if len(errors) > 0 { + return EditUserLogoResponseMultiError(errors) + } + + return nil +} + +// EditUserLogoResponseMultiError is an error wrapping multiple validation +// errors returned by EditUserLogoResponse.ValidateAll() if the designated +// constraints aren't met. +type EditUserLogoResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m EditUserLogoResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m EditUserLogoResponseMultiError) AllErrors() []error { return m } + +// EditUserLogoResponseValidationError is the validation error returned by +// EditUserLogoResponse.Validate if the designated constraints aren't met. +type EditUserLogoResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e EditUserLogoResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e EditUserLogoResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e EditUserLogoResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e EditUserLogoResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e EditUserLogoResponseValidationError) ErrorName() string { + return "EditUserLogoResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e EditUserLogoResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sEditUserLogoResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = EditUserLogoResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = EditUserLogoResponseValidationError{} + +// Validate checks the field values on DeleteNodeRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *DeleteNodeRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteNodeRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteNodeRequestMultiError, or nil if none found. +func (m *DeleteNodeRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteNodeRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetNodeId() < 1 { + err := DeleteNodeRequestValidationError{ + field: "NodeId", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetReasonTitle()) < 1 { + err := DeleteNodeRequestValidationError{ + field: "ReasonTitle", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetReasonBody()) < 1 { + err := DeleteNodeRequestValidationError{ + field: "ReasonBody", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return DeleteNodeRequestMultiError(errors) + } + + return nil +} + +// DeleteNodeRequestMultiError is an error wrapping multiple validation errors +// returned by DeleteNodeRequest.ValidateAll() if the designated constraints +// aren't met. +type DeleteNodeRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteNodeRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteNodeRequestMultiError) AllErrors() []error { return m } + +// DeleteNodeRequestValidationError is the validation error returned by +// DeleteNodeRequest.Validate if the designated constraints aren't met. +type DeleteNodeRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteNodeRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteNodeRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteNodeRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteNodeRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteNodeRequestValidationError) ErrorName() string { + return "DeleteNodeRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteNodeRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteNodeRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteNodeRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteNodeRequestValidationError{} + +// Validate checks the field values on DeleteNodeResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *DeleteNodeResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeleteNodeResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// DeleteNodeResponseMultiError, or nil if none found. +func (m *DeleteNodeResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *DeleteNodeResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return DeleteNodeResponseMultiError(errors) + } + + return nil +} + +// DeleteNodeResponseMultiError is an error wrapping multiple validation errors +// returned by DeleteNodeResponse.ValidateAll() if the designated constraints +// aren't met. +type DeleteNodeResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeleteNodeResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeleteNodeResponseMultiError) AllErrors() []error { return m } + +// DeleteNodeResponseValidationError is the validation error returned by +// DeleteNodeResponse.Validate if the designated constraints aren't met. +type DeleteNodeResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeleteNodeResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeleteNodeResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeleteNodeResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeleteNodeResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeleteNodeResponseValidationError) ErrorName() string { + return "DeleteNodeResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e DeleteNodeResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sDeleteNodeResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeleteNodeResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeleteNodeResponseValidationError{} + +// Validate checks the field values on ReportRequest with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *ReportRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ReportRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in ReportRequestMultiError, or +// nil if none found. +func (m *ReportRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ReportRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetNodeId() < 1 { + err := ReportRequestValidationError{ + field: "NodeId", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetContent()) < 1 { + err := ReportRequestValidationError{ + field: "Content", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetCode()) != 4 { + err := ReportRequestValidationError{ + field: "Code", + reason: "value length must be 4 runes", + } + if !all { + return err + } + errors = append(errors, err) + + } + + if utf8.RuneCountInString(m.GetCodeKey()) < 1 { + err := ReportRequestValidationError{ + field: "CodeKey", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if !_ReportRequest_Type_Pattern.MatchString(m.GetType()) { + err := ReportRequestValidationError{ + field: "Type", + reason: "value does not match regex pattern \"^(question|answer|comment|message|notice)$\"", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return ReportRequestMultiError(errors) + } + + return nil +} + +// ReportRequestMultiError is an error wrapping multiple validation errors +// returned by ReportRequest.ValidateAll() if the designated constraints +// aren't met. +type ReportRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ReportRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ReportRequestMultiError) AllErrors() []error { return m } + +// ReportRequestValidationError is the validation error returned by +// ReportRequest.Validate if the designated constraints aren't met. +type ReportRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ReportRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ReportRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ReportRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ReportRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ReportRequestValidationError) ErrorName() string { return "ReportRequestValidationError" } + +// Error satisfies the builtin error interface +func (e ReportRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sReportRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ReportRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ReportRequestValidationError{} + +var _ReportRequest_Type_Pattern = regexp.MustCompile("^(question|answer|comment|message|notice)$") + +// Validate checks the field values on ReportResponse with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *ReportResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ReportResponse with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in ReportResponseMultiError, +// or nil if none found. +func (m *ReportResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ReportResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return ReportResponseMultiError(errors) + } + + return nil +} + +// ReportResponseMultiError is an error wrapping multiple validation errors +// returned by ReportResponse.ValidateAll() if the designated constraints +// aren't met. +type ReportResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ReportResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ReportResponseMultiError) AllErrors() []error { return m } + +// ReportResponseValidationError is the validation error returned by +// ReportResponse.Validate if the designated constraints aren't met. +type ReportResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ReportResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ReportResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ReportResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ReportResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ReportResponseValidationError) ErrorName() string { return "ReportResponseValidationError" } + +// Error satisfies the builtin error interface +func (e ReportResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sReportResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ReportResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ReportResponseValidationError{} + +// Validate checks the field values on ForwardQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ForwardQuestionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ForwardQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ForwardQuestionRequestMultiError, or nil if none found. +func (m *ForwardQuestionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ForwardQuestionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetNodeId() < 1 { + err := ForwardQuestionRequestValidationError{ + field: "NodeId", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetContent()) < 1 { + err := ForwardQuestionRequestValidationError{ + field: "Content", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetOriginalContent()) < 1 { + err := ForwardQuestionRequestValidationError{ + field: "OriginalContent", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetSendTo()) < 1 { + err := ForwardQuestionRequestValidationError{ + field: "SendTo", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return ForwardQuestionRequestMultiError(errors) + } + + return nil +} + +// ForwardQuestionRequestMultiError is an error wrapping multiple validation +// errors returned by ForwardQuestionRequest.ValidateAll() if the designated +// constraints aren't met. +type ForwardQuestionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ForwardQuestionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ForwardQuestionRequestMultiError) AllErrors() []error { return m } + +// ForwardQuestionRequestValidationError is the validation error returned by +// ForwardQuestionRequest.Validate if the designated constraints aren't met. +type ForwardQuestionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ForwardQuestionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ForwardQuestionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ForwardQuestionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ForwardQuestionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ForwardQuestionRequestValidationError) ErrorName() string { + return "ForwardQuestionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ForwardQuestionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sForwardQuestionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ForwardQuestionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ForwardQuestionRequestValidationError{} + +// Validate checks the field values on ForwardQuestionResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ForwardQuestionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ForwardQuestionResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ForwardQuestionResponseMultiError, or nil if none found. +func (m *ForwardQuestionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ForwardQuestionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return ForwardQuestionResponseMultiError(errors) + } + + return nil +} + +// ForwardQuestionResponseMultiError is an error wrapping multiple validation +// errors returned by ForwardQuestionResponse.ValidateAll() if the designated +// constraints aren't met. +type ForwardQuestionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ForwardQuestionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ForwardQuestionResponseMultiError) AllErrors() []error { return m } + +// ForwardQuestionResponseValidationError is the validation error returned by +// ForwardQuestionResponse.Validate if the designated constraints aren't met. +type ForwardQuestionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ForwardQuestionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ForwardQuestionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ForwardQuestionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ForwardQuestionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ForwardQuestionResponseValidationError) ErrorName() string { + return "ForwardQuestionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ForwardQuestionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sForwardQuestionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ForwardQuestionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ForwardQuestionResponseValidationError{} + +// Validate checks the field values on AddAnswerRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *AddAnswerRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AddAnswerRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AddAnswerRequestMultiError, or nil if none found. +func (m *AddAnswerRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AddAnswerRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for ParentId + + // no validation rules for Title + + if utf8.RuneCountInString(m.GetContent()) < 1 { + err := AddAnswerRequestValidationError{ + field: "Content", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return AddAnswerRequestMultiError(errors) + } + + return nil +} + +// AddAnswerRequestMultiError is an error wrapping multiple validation errors +// returned by AddAnswerRequest.ValidateAll() if the designated constraints +// aren't met. +type AddAnswerRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AddAnswerRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AddAnswerRequestMultiError) AllErrors() []error { return m } + +// AddAnswerRequestValidationError is the validation error returned by +// AddAnswerRequest.Validate if the designated constraints aren't met. +type AddAnswerRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AddAnswerRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AddAnswerRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AddAnswerRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AddAnswerRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AddAnswerRequestValidationError) ErrorName() string { return "AddAnswerRequestValidationError" } + +// Error satisfies the builtin error interface +func (e AddAnswerRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAddAnswerRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AddAnswerRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AddAnswerRequestValidationError{} + +// Validate checks the field values on AddAnswerResponse with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *AddAnswerResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AddAnswerResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AddAnswerResponseMultiError, or nil if none found. +func (m *AddAnswerResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AddAnswerResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return AddAnswerResponseMultiError(errors) + } + + return nil +} + +// AddAnswerResponseMultiError is an error wrapping multiple validation errors +// returned by AddAnswerResponse.ValidateAll() if the designated constraints +// aren't met. +type AddAnswerResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AddAnswerResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AddAnswerResponseMultiError) AllErrors() []error { return m } + +// AddAnswerResponseValidationError is the validation error returned by +// AddAnswerResponse.Validate if the designated constraints aren't met. +type AddAnswerResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AddAnswerResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AddAnswerResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AddAnswerResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AddAnswerResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AddAnswerResponseValidationError) ErrorName() string { + return "AddAnswerResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AddAnswerResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAddAnswerResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AddAnswerResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AddAnswerResponseValidationError{} + +// Validate checks the field values on VoteNodeGoodRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *VoteNodeGoodRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on VoteNodeGoodRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// VoteNodeGoodRequestMultiError, or nil if none found. +func (m *VoteNodeGoodRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *VoteNodeGoodRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for NodeId + + // no validation rules for IsGood + + if len(errors) > 0 { + return VoteNodeGoodRequestMultiError(errors) + } + + return nil +} + +// VoteNodeGoodRequestMultiError is an error wrapping multiple validation +// errors returned by VoteNodeGoodRequest.ValidateAll() if the designated +// constraints aren't met. +type VoteNodeGoodRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m VoteNodeGoodRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m VoteNodeGoodRequestMultiError) AllErrors() []error { return m } + +// VoteNodeGoodRequestValidationError is the validation error returned by +// VoteNodeGoodRequest.Validate if the designated constraints aren't met. +type VoteNodeGoodRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e VoteNodeGoodRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e VoteNodeGoodRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e VoteNodeGoodRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e VoteNodeGoodRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e VoteNodeGoodRequestValidationError) ErrorName() string { + return "VoteNodeGoodRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e VoteNodeGoodRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sVoteNodeGoodRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = VoteNodeGoodRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = VoteNodeGoodRequestValidationError{} + +// Validate checks the field values on VoteNodeGoodResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *VoteNodeGoodResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on VoteNodeGoodResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// VoteNodeGoodResponseMultiError, or nil if none found. +func (m *VoteNodeGoodResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *VoteNodeGoodResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return VoteNodeGoodResponseMultiError(errors) + } + + return nil +} + +// VoteNodeGoodResponseMultiError is an error wrapping multiple validation +// errors returned by VoteNodeGoodResponse.ValidateAll() if the designated +// constraints aren't met. +type VoteNodeGoodResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m VoteNodeGoodResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m VoteNodeGoodResponseMultiError) AllErrors() []error { return m } + +// VoteNodeGoodResponseValidationError is the validation error returned by +// VoteNodeGoodResponse.Validate if the designated constraints aren't met. +type VoteNodeGoodResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e VoteNodeGoodResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e VoteNodeGoodResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e VoteNodeGoodResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e VoteNodeGoodResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e VoteNodeGoodResponseValidationError) ErrorName() string { + return "VoteNodeGoodResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e VoteNodeGoodResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sVoteNodeGoodResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = VoteNodeGoodResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = VoteNodeGoodResponseValidationError{} + +// Validate checks the field values on LoginRequest with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *LoginRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on LoginRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in LoginRequestMultiError, or +// nil if none found. +func (m *LoginRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *LoginRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for LoginType + + // no validation rules for UserName + + // no validation rules for Password + + // no validation rules for Code + + if len(errors) > 0 { + return LoginRequestMultiError(errors) + } + + return nil +} + +// LoginRequestMultiError is an error wrapping multiple validation errors +// returned by LoginRequest.ValidateAll() if the designated constraints aren't met. +type LoginRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m LoginRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m LoginRequestMultiError) AllErrors() []error { return m } + +// LoginRequestValidationError is the validation error returned by +// LoginRequest.Validate if the designated constraints aren't met. +type LoginRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e LoginRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e LoginRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e LoginRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e LoginRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e LoginRequestValidationError) ErrorName() string { return "LoginRequestValidationError" } + +// Error satisfies the builtin error interface +func (e LoginRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sLoginRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = LoginRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = LoginRequestValidationError{} + +// Validate checks the field values on LoginResponse with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *LoginResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on LoginResponse with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in LoginResponseMultiError, or +// nil if none found. +func (m *LoginResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *LoginResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Code + + if len(errors) > 0 { + return LoginResponseMultiError(errors) + } + + return nil +} + +// LoginResponseMultiError is an error wrapping multiple validation errors +// returned by LoginResponse.ValidateAll() if the designated constraints +// aren't met. +type LoginResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m LoginResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m LoginResponseMultiError) AllErrors() []error { return m } + +// LoginResponseValidationError is the validation error returned by +// LoginResponse.Validate if the designated constraints aren't met. +type LoginResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e LoginResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e LoginResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e LoginResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e LoginResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e LoginResponseValidationError) ErrorName() string { return "LoginResponseValidationError" } + +// Error satisfies the builtin error interface +func (e LoginResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sLoginResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = LoginResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = LoginResponseValidationError{} + +// Validate checks the field values on AdminRolesPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminRolesPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminRolesPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminRolesPageRequestMultiError, or nil if none found. +func (m *AdminRolesPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminRolesPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return AdminRolesPageRequestMultiError(errors) + } + + return nil +} + +// AdminRolesPageRequestMultiError is an error wrapping multiple validation +// errors returned by AdminRolesPageRequest.ValidateAll() if the designated +// constraints aren't met. +type AdminRolesPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminRolesPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminRolesPageRequestMultiError) AllErrors() []error { return m } + +// AdminRolesPageRequestValidationError is the validation error returned by +// AdminRolesPageRequest.Validate if the designated constraints aren't met. +type AdminRolesPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminRolesPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminRolesPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminRolesPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminRolesPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminRolesPageRequestValidationError) ErrorName() string { + return "AdminRolesPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminRolesPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminRolesPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminRolesPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminRolesPageRequestValidationError{} + +// Validate checks the field values on AdminRolesPageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminRolesPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminRolesPageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminRolesPageResponseItemMultiError, or nil if none found. +func (m *AdminRolesPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminRolesPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Name + + // no validation rules for Id + + // no validation rules for IsBlock + + if len(errors) > 0 { + return AdminRolesPageResponseItemMultiError(errors) + } + + return nil +} + +// AdminRolesPageResponseItemMultiError is an error wrapping multiple +// validation errors returned by AdminRolesPageResponseItem.ValidateAll() if +// the designated constraints aren't met. +type AdminRolesPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminRolesPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminRolesPageResponseItemMultiError) AllErrors() []error { return m } + +// AdminRolesPageResponseItemValidationError is the validation error returned +// by AdminRolesPageResponseItem.Validate if the designated constraints aren't met. +type AdminRolesPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminRolesPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminRolesPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminRolesPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminRolesPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminRolesPageResponseItemValidationError) ErrorName() string { + return "AdminRolesPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminRolesPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminRolesPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminRolesPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminRolesPageResponseItemValidationError{} + +// Validate checks the field values on AdminRolesPageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminRolesPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminRolesPageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminRolesPageResponseMultiError, or nil if none found. +func (m *AdminRolesPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminRolesPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AdminRolesPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AdminRolesPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AdminRolesPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return AdminRolesPageResponseMultiError(errors) + } + + return nil +} + +// AdminRolesPageResponseMultiError is an error wrapping multiple validation +// errors returned by AdminRolesPageResponse.ValidateAll() if the designated +// constraints aren't met. +type AdminRolesPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminRolesPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminRolesPageResponseMultiError) AllErrors() []error { return m } + +// AdminRolesPageResponseValidationError is the validation error returned by +// AdminRolesPageResponse.Validate if the designated constraints aren't met. +type AdminRolesPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminRolesPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminRolesPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminRolesPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminRolesPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminRolesPageResponseValidationError) ErrorName() string { + return "AdminRolesPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminRolesPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminRolesPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminRolesPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminRolesPageResponseValidationError{} + +// Validate checks the field values on AdminUpdateRoleActionRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminUpdateRoleActionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminUpdateRoleActionRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminUpdateRoleActionRequestMultiError, or nil if none found. +func (m *AdminUpdateRoleActionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminUpdateRoleActionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Title + + // no validation rules for Id + + if len(errors) > 0 { + return AdminUpdateRoleActionRequestMultiError(errors) + } + + return nil +} + +// AdminUpdateRoleActionRequestMultiError is an error wrapping multiple +// validation errors returned by AdminUpdateRoleActionRequest.ValidateAll() if +// the designated constraints aren't met. +type AdminUpdateRoleActionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminUpdateRoleActionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminUpdateRoleActionRequestMultiError) AllErrors() []error { return m } + +// AdminUpdateRoleActionRequestValidationError is the validation error returned +// by AdminUpdateRoleActionRequest.Validate if the designated constraints +// aren't met. +type AdminUpdateRoleActionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminUpdateRoleActionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminUpdateRoleActionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminUpdateRoleActionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminUpdateRoleActionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminUpdateRoleActionRequestValidationError) ErrorName() string { + return "AdminUpdateRoleActionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminUpdateRoleActionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminUpdateRoleActionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminUpdateRoleActionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminUpdateRoleActionRequestValidationError{} + +// Validate checks the field values on AdminUpdateRoleActionResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminUpdateRoleActionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminUpdateRoleActionResponse with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// AdminUpdateRoleActionResponseMultiError, or nil if none found. +func (m *AdminUpdateRoleActionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminUpdateRoleActionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return AdminUpdateRoleActionResponseMultiError(errors) + } + + return nil +} + +// AdminUpdateRoleActionResponseMultiError is an error wrapping multiple +// validation errors returned by AdminUpdateRoleActionResponse.ValidateAll() +// if the designated constraints aren't met. +type AdminUpdateRoleActionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminUpdateRoleActionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminUpdateRoleActionResponseMultiError) AllErrors() []error { return m } + +// AdminUpdateRoleActionResponseValidationError is the validation error +// returned by AdminUpdateRoleActionResponse.Validate if the designated +// constraints aren't met. +type AdminUpdateRoleActionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminUpdateRoleActionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminUpdateRoleActionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminUpdateRoleActionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminUpdateRoleActionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminUpdateRoleActionResponseValidationError) ErrorName() string { + return "AdminUpdateRoleActionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminUpdateRoleActionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminUpdateRoleActionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminUpdateRoleActionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminUpdateRoleActionResponseValidationError{} + +// Validate checks the field values on AdminUserPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminUserPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminUserPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminUserPageRequestMultiError, or nil if none found. +func (m *AdminUserPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminUserPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for RoleId + + // no validation rules for Status + + // no validation rules for CreatedStart + + // no validation rules for CreatedEnd + + // no validation rules for LoginStart + + // no validation rules for LoginEnd + + // no validation rules for Email + + // no validation rules for UserId + + // no validation rules for Name + + // no validation rules for Page + + if len(errors) > 0 { + return AdminUserPageRequestMultiError(errors) + } + + return nil +} + +// AdminUserPageRequestMultiError is an error wrapping multiple validation +// errors returned by AdminUserPageRequest.ValidateAll() if the designated +// constraints aren't met. +type AdminUserPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminUserPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminUserPageRequestMultiError) AllErrors() []error { return m } + +// AdminUserPageRequestValidationError is the validation error returned by +// AdminUserPageRequest.Validate if the designated constraints aren't met. +type AdminUserPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminUserPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminUserPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminUserPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminUserPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminUserPageRequestValidationError) ErrorName() string { + return "AdminUserPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminUserPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminUserPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminUserPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminUserPageRequestValidationError{} + +// Validate checks the field values on AdminUserPageResponseItem with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminUserPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminUserPageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminUserPageResponseItemMultiError, or nil if none found. +func (m *AdminUserPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminUserPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for Name + + // no validation rules for Status + + // no validation rules for RegisterTime + + // no validation rules for LastTime + + if len(errors) > 0 { + return AdminUserPageResponseItemMultiError(errors) + } + + return nil +} + +// AdminUserPageResponseItemMultiError is an error wrapping multiple validation +// errors returned by AdminUserPageResponseItem.ValidateAll() if the +// designated constraints aren't met. +type AdminUserPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminUserPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminUserPageResponseItemMultiError) AllErrors() []error { return m } + +// AdminUserPageResponseItemValidationError is the validation error returned by +// AdminUserPageResponseItem.Validate if the designated constraints aren't met. +type AdminUserPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminUserPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminUserPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminUserPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminUserPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminUserPageResponseItemValidationError) ErrorName() string { + return "AdminUserPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminUserPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminUserPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminUserPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminUserPageResponseItemValidationError{} + +// Validate checks the field values on AdminUserPageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminUserPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminUserPageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminUserPageResponseMultiError, or nil if none found. +func (m *AdminUserPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminUserPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AdminUserPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AdminUserPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AdminUserPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return AdminUserPageResponseMultiError(errors) + } + + return nil +} + +// AdminUserPageResponseMultiError is an error wrapping multiple validation +// errors returned by AdminUserPageResponse.ValidateAll() if the designated +// constraints aren't met. +type AdminUserPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminUserPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminUserPageResponseMultiError) AllErrors() []error { return m } + +// AdminUserPageResponseValidationError is the validation error returned by +// AdminUserPageResponse.Validate if the designated constraints aren't met. +type AdminUserPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminUserPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminUserPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminUserPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminUserPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminUserPageResponseValidationError) ErrorName() string { + return "AdminUserPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminUserPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminUserPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminUserPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminUserPageResponseValidationError{} + +// Validate checks the field values on AdminUpdateUserActionRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminUpdateUserActionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminUpdateUserActionRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminUpdateUserActionRequestMultiError, or nil if none found. +func (m *AdminUpdateUserActionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminUpdateUserActionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + if all { + switch v := interface{}(m.GetStatus()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AdminUpdateUserActionRequestValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AdminUpdateUserActionRequestValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetStatus()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AdminUpdateUserActionRequestValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + } + } + } + + for idx, item := range m.GetRoleIds() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AdminUpdateUserActionRequestValidationError{ + field: fmt.Sprintf("RoleIds[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AdminUpdateUserActionRequestValidationError{ + field: fmt.Sprintf("RoleIds[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AdminUpdateUserActionRequestValidationError{ + field: fmt.Sprintf("RoleIds[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return AdminUpdateUserActionRequestMultiError(errors) + } + + return nil +} + +// AdminUpdateUserActionRequestMultiError is an error wrapping multiple +// validation errors returned by AdminUpdateUserActionRequest.ValidateAll() if +// the designated constraints aren't met. +type AdminUpdateUserActionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminUpdateUserActionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminUpdateUserActionRequestMultiError) AllErrors() []error { return m } + +// AdminUpdateUserActionRequestValidationError is the validation error returned +// by AdminUpdateUserActionRequest.Validate if the designated constraints +// aren't met. +type AdminUpdateUserActionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminUpdateUserActionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminUpdateUserActionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminUpdateUserActionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminUpdateUserActionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminUpdateUserActionRequestValidationError) ErrorName() string { + return "AdminUpdateUserActionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminUpdateUserActionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminUpdateUserActionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminUpdateUserActionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminUpdateUserActionRequestValidationError{} + +// Validate checks the field values on AdminUpdateUserActionResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminUpdateUserActionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminUpdateUserActionResponse with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// AdminUpdateUserActionResponseMultiError, or nil if none found. +func (m *AdminUpdateUserActionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminUpdateUserActionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return AdminUpdateUserActionResponseMultiError(errors) + } + + return nil +} + +// AdminUpdateUserActionResponseMultiError is an error wrapping multiple +// validation errors returned by AdminUpdateUserActionResponse.ValidateAll() +// if the designated constraints aren't met. +type AdminUpdateUserActionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminUpdateUserActionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminUpdateUserActionResponseMultiError) AllErrors() []error { return m } + +// AdminUpdateUserActionResponseValidationError is the validation error +// returned by AdminUpdateUserActionResponse.Validate if the designated +// constraints aren't met. +type AdminUpdateUserActionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminUpdateUserActionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminUpdateUserActionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminUpdateUserActionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminUpdateUserActionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminUpdateUserActionResponseValidationError) ErrorName() string { + return "AdminUpdateUserActionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminUpdateUserActionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminUpdateUserActionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminUpdateUserActionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminUpdateUserActionResponseValidationError{} + +// Validate checks the field values on AdminNodePageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminNodePageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminNodePageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminNodePageRequestMultiError, or nil if none found. +func (m *AdminNodePageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminNodePageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Status + + // no validation rules for Type + + // no validation rules for Page + + // no validation rules for CreatedStart + + // no validation rules for CreatedEnd + + // no validation rules for Title + + // no validation rules for Name + + // no validation rules for UserId + + if len(errors) > 0 { + return AdminNodePageRequestMultiError(errors) + } + + return nil +} + +// AdminNodePageRequestMultiError is an error wrapping multiple validation +// errors returned by AdminNodePageRequest.ValidateAll() if the designated +// constraints aren't met. +type AdminNodePageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminNodePageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminNodePageRequestMultiError) AllErrors() []error { return m } + +// AdminNodePageRequestValidationError is the validation error returned by +// AdminNodePageRequest.Validate if the designated constraints aren't met. +type AdminNodePageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminNodePageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminNodePageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminNodePageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminNodePageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminNodePageRequestValidationError) ErrorName() string { + return "AdminNodePageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminNodePageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminNodePageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminNodePageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminNodePageRequestValidationError{} + +// Validate checks the field values on AdminNodePageResponseItem with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminNodePageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminNodePageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminNodePageResponseItemMultiError, or nil if none found. +func (m *AdminNodePageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminNodePageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for Title + + // no validation rules for Type + + // no validation rules for UserId + + // no validation rules for UserName + + // no validation rules for Status + + // no validation rules for Url + + // no validation rules for Promote + + // no validation rules for Sticky + + // no validation rules for Reason + + // no validation rules for PostTime + + // no validation rules for ChangedTime + + if len(errors) > 0 { + return AdminNodePageResponseItemMultiError(errors) + } + + return nil +} + +// AdminNodePageResponseItemMultiError is an error wrapping multiple validation +// errors returned by AdminNodePageResponseItem.ValidateAll() if the +// designated constraints aren't met. +type AdminNodePageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminNodePageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminNodePageResponseItemMultiError) AllErrors() []error { return m } + +// AdminNodePageResponseItemValidationError is the validation error returned by +// AdminNodePageResponseItem.Validate if the designated constraints aren't met. +type AdminNodePageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminNodePageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminNodePageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminNodePageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminNodePageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminNodePageResponseItemValidationError) ErrorName() string { + return "AdminNodePageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminNodePageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminNodePageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminNodePageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminNodePageResponseItemValidationError{} + +// Validate checks the field values on AdminNodePageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminNodePageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminNodePageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminNodePageResponseMultiError, or nil if none found. +func (m *AdminNodePageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminNodePageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AdminNodePageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AdminNodePageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AdminNodePageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return AdminNodePageResponseMultiError(errors) + } + + return nil +} + +// AdminNodePageResponseMultiError is an error wrapping multiple validation +// errors returned by AdminNodePageResponse.ValidateAll() if the designated +// constraints aren't met. +type AdminNodePageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminNodePageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminNodePageResponseMultiError) AllErrors() []error { return m } + +// AdminNodePageResponseValidationError is the validation error returned by +// AdminNodePageResponse.Validate if the designated constraints aren't met. +type AdminNodePageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminNodePageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminNodePageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminNodePageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminNodePageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminNodePageResponseValidationError) ErrorName() string { + return "AdminNodePageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminNodePageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminNodePageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminNodePageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminNodePageResponseValidationError{} + +// Validate checks the field values on UpdateNodeRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *UpdateNodeRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateNodeRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UpdateNodeRequestMultiError, or nil if none found. +func (m *UpdateNodeRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateNodeRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetStatus()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateNodeRequestValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateNodeRequestValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetStatus()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateNodeRequestValidationError{ + field: "Status", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetPromote()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateNodeRequestValidationError{ + field: "Promote", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateNodeRequestValidationError{ + field: "Promote", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetPromote()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateNodeRequestValidationError{ + field: "Promote", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetSticky()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, UpdateNodeRequestValidationError{ + field: "Sticky", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, UpdateNodeRequestValidationError{ + field: "Sticky", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetSticky()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return UpdateNodeRequestValidationError{ + field: "Sticky", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return UpdateNodeRequestMultiError(errors) + } + + return nil +} + +// UpdateNodeRequestMultiError is an error wrapping multiple validation errors +// returned by UpdateNodeRequest.ValidateAll() if the designated constraints +// aren't met. +type UpdateNodeRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateNodeRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateNodeRequestMultiError) AllErrors() []error { return m } + +// UpdateNodeRequestValidationError is the validation error returned by +// UpdateNodeRequest.Validate if the designated constraints aren't met. +type UpdateNodeRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateNodeRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateNodeRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateNodeRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateNodeRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateNodeRequestValidationError) ErrorName() string { + return "UpdateNodeRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateNodeRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateNodeRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateNodeRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateNodeRequestValidationError{} + +// Validate checks the field values on UpdateNodeResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *UpdateNodeResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on UpdateNodeResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// UpdateNodeResponseMultiError, or nil if none found. +func (m *UpdateNodeResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *UpdateNodeResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return UpdateNodeResponseMultiError(errors) + } + + return nil +} + +// UpdateNodeResponseMultiError is an error wrapping multiple validation errors +// returned by UpdateNodeResponse.ValidateAll() if the designated constraints +// aren't met. +type UpdateNodeResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m UpdateNodeResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m UpdateNodeResponseMultiError) AllErrors() []error { return m } + +// UpdateNodeResponseValidationError is the validation error returned by +// UpdateNodeResponse.Validate if the designated constraints aren't met. +type UpdateNodeResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e UpdateNodeResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e UpdateNodeResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e UpdateNodeResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e UpdateNodeResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e UpdateNodeResponseValidationError) ErrorName() string { + return "UpdateNodeResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e UpdateNodeResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sUpdateNodeResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = UpdateNodeResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = UpdateNodeResponseValidationError{} + +// Validate checks the field values on HelpPageRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *HelpPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on HelpPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// HelpPageRequestMultiError, or nil if none found. +func (m *HelpPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *HelpPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if utf8.RuneCountInString(m.GetUrlKey()) < 1 { + err := HelpPageRequestValidationError{ + field: "UrlKey", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return HelpPageRequestMultiError(errors) + } + + return nil +} + +// HelpPageRequestMultiError is an error wrapping multiple validation errors +// returned by HelpPageRequest.ValidateAll() if the designated constraints +// aren't met. +type HelpPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m HelpPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m HelpPageRequestMultiError) AllErrors() []error { return m } + +// HelpPageRequestValidationError is the validation error returned by +// HelpPageRequest.Validate if the designated constraints aren't met. +type HelpPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HelpPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HelpPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HelpPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HelpPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HelpPageRequestValidationError) ErrorName() string { return "HelpPageRequestValidationError" } + +// Error satisfies the builtin error interface +func (e HelpPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHelpPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HelpPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HelpPageRequestValidationError{} + +// Validate checks the field values on HelpPageResponseItem with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *HelpPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on HelpPageResponseItem with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// HelpPageResponseItemMultiError, or nil if none found. +func (m *HelpPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *HelpPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Title + + // no validation rules for Url + + for idx, item := range m.GetChildren() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, HelpPageResponseItemValidationError{ + field: fmt.Sprintf("Children[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, HelpPageResponseItemValidationError{ + field: fmt.Sprintf("Children[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HelpPageResponseItemValidationError{ + field: fmt.Sprintf("Children[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Pid + + if len(errors) > 0 { + return HelpPageResponseItemMultiError(errors) + } + + return nil +} + +// HelpPageResponseItemMultiError is an error wrapping multiple validation +// errors returned by HelpPageResponseItem.ValidateAll() if the designated +// constraints aren't met. +type HelpPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m HelpPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m HelpPageResponseItemMultiError) AllErrors() []error { return m } + +// HelpPageResponseItemValidationError is the validation error returned by +// HelpPageResponseItem.Validate if the designated constraints aren't met. +type HelpPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HelpPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HelpPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HelpPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HelpPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HelpPageResponseItemValidationError) ErrorName() string { + return "HelpPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e HelpPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHelpPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HelpPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HelpPageResponseItemValidationError{} + +// Validate checks the field values on HelpPageResponse with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *HelpPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on HelpPageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// HelpPageResponseMultiError, or nil if none found. +func (m *HelpPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *HelpPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetMenus() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, HelpPageResponseValidationError{ + field: fmt.Sprintf("Menus[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, HelpPageResponseValidationError{ + field: fmt.Sprintf("Menus[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return HelpPageResponseValidationError{ + field: fmt.Sprintf("Menus[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Content + + // no validation rules for Title + + if len(errors) > 0 { + return HelpPageResponseMultiError(errors) + } + + return nil +} + +// HelpPageResponseMultiError is an error wrapping multiple validation errors +// returned by HelpPageResponse.ValidateAll() if the designated constraints +// aren't met. +type HelpPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m HelpPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m HelpPageResponseMultiError) AllErrors() []error { return m } + +// HelpPageResponseValidationError is the validation error returned by +// HelpPageResponse.Validate if the designated constraints aren't met. +type HelpPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e HelpPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e HelpPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e HelpPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e HelpPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e HelpPageResponseValidationError) ErrorName() string { return "HelpPageResponseValidationError" } + +// Error satisfies the builtin error interface +func (e HelpPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sHelpPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = HelpPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = HelpPageResponseValidationError{} + +// Validate checks the field values on RandQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *RandQuestionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on RandQuestionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// RandQuestionRequestMultiError, or nil if none found. +func (m *RandQuestionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *RandQuestionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return RandQuestionRequestMultiError(errors) + } + + return nil +} + +// RandQuestionRequestMultiError is an error wrapping multiple validation +// errors returned by RandQuestionRequest.ValidateAll() if the designated +// constraints aren't met. +type RandQuestionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RandQuestionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RandQuestionRequestMultiError) AllErrors() []error { return m } + +// RandQuestionRequestValidationError is the validation error returned by +// RandQuestionRequest.Validate if the designated constraints aren't met. +type RandQuestionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RandQuestionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RandQuestionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RandQuestionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RandQuestionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RandQuestionRequestValidationError) ErrorName() string { + return "RandQuestionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e RandQuestionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRandQuestionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RandQuestionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RandQuestionRequestValidationError{} + +// Validate checks the field values on RandQuestionResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *RandQuestionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on RandQuestionResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// RandQuestionResponseMultiError, or nil if none found. +func (m *RandQuestionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *RandQuestionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Url + + if len(errors) > 0 { + return RandQuestionResponseMultiError(errors) + } + + return nil +} + +// RandQuestionResponseMultiError is an error wrapping multiple validation +// errors returned by RandQuestionResponse.ValidateAll() if the designated +// constraints aren't met. +type RandQuestionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RandQuestionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RandQuestionResponseMultiError) AllErrors() []error { return m } + +// RandQuestionResponseValidationError is the validation error returned by +// RandQuestionResponse.Validate if the designated constraints aren't met. +type RandQuestionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RandQuestionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RandQuestionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RandQuestionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RandQuestionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RandQuestionResponseValidationError) ErrorName() string { + return "RandQuestionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e RandQuestionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRandQuestionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RandQuestionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RandQuestionResponseValidationError{} + +// Validate checks the field values on ExchangeRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *ExchangeRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ExchangeRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ExchangeRequestMultiError, or nil if none found. +func (m *ExchangeRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ExchangeRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return ExchangeRequestMultiError(errors) + } + + return nil +} + +// ExchangeRequestMultiError is an error wrapping multiple validation errors +// returned by ExchangeRequest.ValidateAll() if the designated constraints +// aren't met. +type ExchangeRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ExchangeRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ExchangeRequestMultiError) AllErrors() []error { return m } + +// ExchangeRequestValidationError is the validation error returned by +// ExchangeRequest.Validate if the designated constraints aren't met. +type ExchangeRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExchangeRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExchangeRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExchangeRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExchangeRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExchangeRequestValidationError) ErrorName() string { return "ExchangeRequestValidationError" } + +// Error satisfies the builtin error interface +func (e ExchangeRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExchangeRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExchangeRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExchangeRequestValidationError{} + +// Validate checks the field values on ExchangeResponseItem with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ExchangeResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ExchangeResponseItem with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ExchangeResponseItemMultiError, or nil if none found. +func (m *ExchangeResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *ExchangeResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Title + + // no validation rules for Content + + // no validation rules for Point + + // no validation rules for Image + + // no validation rules for Id + + if len(errors) > 0 { + return ExchangeResponseItemMultiError(errors) + } + + return nil +} + +// ExchangeResponseItemMultiError is an error wrapping multiple validation +// errors returned by ExchangeResponseItem.ValidateAll() if the designated +// constraints aren't met. +type ExchangeResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ExchangeResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ExchangeResponseItemMultiError) AllErrors() []error { return m } + +// ExchangeResponseItemValidationError is the validation error returned by +// ExchangeResponseItem.Validate if the designated constraints aren't met. +type ExchangeResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExchangeResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExchangeResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExchangeResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExchangeResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExchangeResponseItemValidationError) ErrorName() string { + return "ExchangeResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e ExchangeResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExchangeResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExchangeResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExchangeResponseItemValidationError{} + +// Validate checks the field values on ExchangeResponse with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *ExchangeResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ExchangeResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ExchangeResponseMultiError, or nil if none found. +func (m *ExchangeResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ExchangeResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ExchangeResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ExchangeResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExchangeResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return ExchangeResponseMultiError(errors) + } + + return nil +} + +// ExchangeResponseMultiError is an error wrapping multiple validation errors +// returned by ExchangeResponse.ValidateAll() if the designated constraints +// aren't met. +type ExchangeResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ExchangeResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ExchangeResponseMultiError) AllErrors() []error { return m } + +// ExchangeResponseValidationError is the validation error returned by +// ExchangeResponse.Validate if the designated constraints aren't met. +type ExchangeResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExchangeResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExchangeResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExchangeResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExchangeResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExchangeResponseValidationError) ErrorName() string { return "ExchangeResponseValidationError" } + +// Error satisfies the builtin error interface +func (e ExchangeResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExchangeResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExchangeResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExchangeResponseValidationError{} + +// Validate checks the field values on AdminExchangeRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminExchangeRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminExchangeRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminExchangeRequestMultiError, or nil if none found. +func (m *AdminExchangeRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminExchangeRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Page + + if len(errors) > 0 { + return AdminExchangeRequestMultiError(errors) + } + + return nil +} + +// AdminExchangeRequestMultiError is an error wrapping multiple validation +// errors returned by AdminExchangeRequest.ValidateAll() if the designated +// constraints aren't met. +type AdminExchangeRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminExchangeRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminExchangeRequestMultiError) AllErrors() []error { return m } + +// AdminExchangeRequestValidationError is the validation error returned by +// AdminExchangeRequest.Validate if the designated constraints aren't met. +type AdminExchangeRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminExchangeRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminExchangeRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminExchangeRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminExchangeRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminExchangeRequestValidationError) ErrorName() string { + return "AdminExchangeRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminExchangeRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminExchangeRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminExchangeRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminExchangeRequestValidationError{} + +// Validate checks the field values on AdminExchangeResponseItem with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminExchangeResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminExchangeResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminExchangeResponseItemMultiError, or nil if none found. +func (m *AdminExchangeResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminExchangeResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for Type + + // no validation rules for Name + + // no validation rules for UserId + + // no validation rules for Points + + // no validation rules for Email + + // no validation rules for AddressCode + + // no validation rules for Address + + // no validation rules for Other + + // no validation rules for CreatedTime + + if len(errors) > 0 { + return AdminExchangeResponseItemMultiError(errors) + } + + return nil +} + +// AdminExchangeResponseItemMultiError is an error wrapping multiple validation +// errors returned by AdminExchangeResponseItem.ValidateAll() if the +// designated constraints aren't met. +type AdminExchangeResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminExchangeResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminExchangeResponseItemMultiError) AllErrors() []error { return m } + +// AdminExchangeResponseItemValidationError is the validation error returned by +// AdminExchangeResponseItem.Validate if the designated constraints aren't met. +type AdminExchangeResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminExchangeResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminExchangeResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminExchangeResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminExchangeResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminExchangeResponseItemValidationError) ErrorName() string { + return "AdminExchangeResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminExchangeResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminExchangeResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminExchangeResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminExchangeResponseItemValidationError{} + +// Validate checks the field values on AdminExchangeResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminExchangeResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminExchangeResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminExchangeResponseMultiError, or nil if none found. +func (m *AdminExchangeResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminExchangeResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AdminExchangeResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AdminExchangeResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AdminExchangeResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return AdminExchangeResponseMultiError(errors) + } + + return nil +} + +// AdminExchangeResponseMultiError is an error wrapping multiple validation +// errors returned by AdminExchangeResponse.ValidateAll() if the designated +// constraints aren't met. +type AdminExchangeResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminExchangeResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminExchangeResponseMultiError) AllErrors() []error { return m } + +// AdminExchangeResponseValidationError is the validation error returned by +// AdminExchangeResponse.Validate if the designated constraints aren't met. +type AdminExchangeResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminExchangeResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminExchangeResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminExchangeResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminExchangeResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminExchangeResponseValidationError) ErrorName() string { + return "AdminExchangeResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminExchangeResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminExchangeResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminExchangeResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminExchangeResponseValidationError{} + +// Validate checks the field values on ExchangeActionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ExchangeActionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ExchangeActionRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ExchangeActionRequestMultiError, or nil if none found. +func (m *ExchangeActionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ExchangeActionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetId() < 1 { + err := ExchangeActionRequestValidationError{ + field: "Id", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetName()) < 1 { + err := ExchangeActionRequestValidationError{ + field: "Name", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetEmail()) < 1 { + err := ExchangeActionRequestValidationError{ + field: "Email", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for AddressCode + + if utf8.RuneCountInString(m.GetAddress()) < 1 { + err := ExchangeActionRequestValidationError{ + field: "Address", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for Other + + if len(errors) > 0 { + return ExchangeActionRequestMultiError(errors) + } + + return nil +} + +// ExchangeActionRequestMultiError is an error wrapping multiple validation +// errors returned by ExchangeActionRequest.ValidateAll() if the designated +// constraints aren't met. +type ExchangeActionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ExchangeActionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ExchangeActionRequestMultiError) AllErrors() []error { return m } + +// ExchangeActionRequestValidationError is the validation error returned by +// ExchangeActionRequest.Validate if the designated constraints aren't met. +type ExchangeActionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExchangeActionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExchangeActionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExchangeActionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExchangeActionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExchangeActionRequestValidationError) ErrorName() string { + return "ExchangeActionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ExchangeActionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExchangeActionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExchangeActionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExchangeActionRequestValidationError{} + +// Validate checks the field values on ExchangeActionResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ExchangeActionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ExchangeActionResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ExchangeActionResponseMultiError, or nil if none found. +func (m *ExchangeActionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ExchangeActionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return ExchangeActionResponseMultiError(errors) + } + + return nil +} + +// ExchangeActionResponseMultiError is an error wrapping multiple validation +// errors returned by ExchangeActionResponse.ValidateAll() if the designated +// constraints aren't met. +type ExchangeActionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ExchangeActionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ExchangeActionResponseMultiError) AllErrors() []error { return m } + +// ExchangeActionResponseValidationError is the validation error returned by +// ExchangeActionResponse.Validate if the designated constraints aren't met. +type ExchangeActionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExchangeActionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExchangeActionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExchangeActionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExchangeActionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExchangeActionResponseValidationError) ErrorName() string { + return "ExchangeActionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ExchangeActionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExchangeActionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExchangeActionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExchangeActionResponseValidationError{} + +// Validate checks the field values on AdminPointsPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminPointsPageRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminPointsPageRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminPointsPageRequestMultiError, or nil if none found. +func (m *AdminPointsPageRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminPointsPageRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for UserId + + // no validation rules for TypeId + + // no validation rules for Page + + // no validation rules for StartTime + + // no validation rules for EndTime + + if len(errors) > 0 { + return AdminPointsPageRequestMultiError(errors) + } + + return nil +} + +// AdminPointsPageRequestMultiError is an error wrapping multiple validation +// errors returned by AdminPointsPageRequest.ValidateAll() if the designated +// constraints aren't met. +type AdminPointsPageRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminPointsPageRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminPointsPageRequestMultiError) AllErrors() []error { return m } + +// AdminPointsPageRequestValidationError is the validation error returned by +// AdminPointsPageRequest.Validate if the designated constraints aren't met. +type AdminPointsPageRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminPointsPageRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminPointsPageRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminPointsPageRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminPointsPageRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminPointsPageRequestValidationError) ErrorName() string { + return "AdminPointsPageRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminPointsPageRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminPointsPageRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminPointsPageRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminPointsPageRequestValidationError{} + +// Validate checks the field values on AdminPointsPageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminPointsPageResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminPointsPageResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminPointsPageResponseItemMultiError, or nil if none found. +func (m *AdminPointsPageResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminPointsPageResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for UserId + + // no validation rules for Point + + // no validation rules for CreatedTime + + // no validation rules for TypeId + + // no validation rules for Url + + // no validation rules for UserName + + if len(errors) > 0 { + return AdminPointsPageResponseItemMultiError(errors) + } + + return nil +} + +// AdminPointsPageResponseItemMultiError is an error wrapping multiple +// validation errors returned by AdminPointsPageResponseItem.ValidateAll() if +// the designated constraints aren't met. +type AdminPointsPageResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminPointsPageResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminPointsPageResponseItemMultiError) AllErrors() []error { return m } + +// AdminPointsPageResponseItemValidationError is the validation error returned +// by AdminPointsPageResponseItem.Validate if the designated constraints +// aren't met. +type AdminPointsPageResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminPointsPageResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminPointsPageResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminPointsPageResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminPointsPageResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminPointsPageResponseItemValidationError) ErrorName() string { + return "AdminPointsPageResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminPointsPageResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminPointsPageResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminPointsPageResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminPointsPageResponseItemValidationError{} + +// Validate checks the field values on AdminPointsPageResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminPointsPageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminPointsPageResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminPointsPageResponseMultiError, or nil if none found. +func (m *AdminPointsPageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminPointsPageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AdminPointsPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AdminPointsPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AdminPointsPageResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return AdminPointsPageResponseMultiError(errors) + } + + return nil +} + +// AdminPointsPageResponseMultiError is an error wrapping multiple validation +// errors returned by AdminPointsPageResponse.ValidateAll() if the designated +// constraints aren't met. +type AdminPointsPageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminPointsPageResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminPointsPageResponseMultiError) AllErrors() []error { return m } + +// AdminPointsPageResponseValidationError is the validation error returned by +// AdminPointsPageResponse.Validate if the designated constraints aren't met. +type AdminPointsPageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminPointsPageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminPointsPageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminPointsPageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminPointsPageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminPointsPageResponseValidationError) ErrorName() string { + return "AdminPointsPageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminPointsPageResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminPointsPageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminPointsPageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminPointsPageResponseValidationError{} + +// Validate checks the field values on AdminAddPointActionRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminAddPointActionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminAddPointActionRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminAddPointActionRequestMultiError, or nil if none found. +func (m *AdminAddPointActionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminAddPointActionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetUserId() < 1 { + err := AdminAddPointActionRequestValidationError{ + field: "UserId", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + if m.GetPoint() < 1 { + err := AdminAddPointActionRequestValidationError{ + field: "Point", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + if m.GetTypeId() < 1 { + err := AdminAddPointActionRequestValidationError{ + field: "TypeId", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for Description + + // no validation rules for EntryId + + if len(errors) > 0 { + return AdminAddPointActionRequestMultiError(errors) + } + + return nil +} + +// AdminAddPointActionRequestMultiError is an error wrapping multiple +// validation errors returned by AdminAddPointActionRequest.ValidateAll() if +// the designated constraints aren't met. +type AdminAddPointActionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminAddPointActionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminAddPointActionRequestMultiError) AllErrors() []error { return m } + +// AdminAddPointActionRequestValidationError is the validation error returned +// by AdminAddPointActionRequest.Validate if the designated constraints aren't met. +type AdminAddPointActionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminAddPointActionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminAddPointActionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminAddPointActionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminAddPointActionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminAddPointActionRequestValidationError) ErrorName() string { + return "AdminAddPointActionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminAddPointActionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminAddPointActionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminAddPointActionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminAddPointActionRequestValidationError{} + +// Validate checks the field values on AdminAddPointActionResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminAddPointActionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminAddPointActionResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminAddPointActionResponseMultiError, or nil if none found. +func (m *AdminAddPointActionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminAddPointActionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return AdminAddPointActionResponseMultiError(errors) + } + + return nil +} + +// AdminAddPointActionResponseMultiError is an error wrapping multiple +// validation errors returned by AdminAddPointActionResponse.ValidateAll() if +// the designated constraints aren't met. +type AdminAddPointActionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminAddPointActionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminAddPointActionResponseMultiError) AllErrors() []error { return m } + +// AdminAddPointActionResponseValidationError is the validation error returned +// by AdminAddPointActionResponse.Validate if the designated constraints +// aren't met. +type AdminAddPointActionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminAddPointActionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminAddPointActionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminAddPointActionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminAddPointActionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminAddPointActionResponseValidationError) ErrorName() string { + return "AdminAddPointActionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminAddPointActionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminAddPointActionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminAddPointActionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminAddPointActionResponseValidationError{} + +// Validate checks the field values on RedirectRequest with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *RedirectRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on RedirectRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// RedirectRequestMultiError, or nil if none found. +func (m *RedirectRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *RedirectRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetId() < 1 { + err := RedirectRequestValidationError{ + field: "Id", + reason: "value must be greater than or equal to 1", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetType()) < 1 { + err := RedirectRequestValidationError{ + field: "Type", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if len(errors) > 0 { + return RedirectRequestMultiError(errors) + } + + return nil +} + +// RedirectRequestMultiError is an error wrapping multiple validation errors +// returned by RedirectRequest.ValidateAll() if the designated constraints +// aren't met. +type RedirectRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RedirectRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RedirectRequestMultiError) AllErrors() []error { return m } + +// RedirectRequestValidationError is the validation error returned by +// RedirectRequest.Validate if the designated constraints aren't met. +type RedirectRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RedirectRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RedirectRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RedirectRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RedirectRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RedirectRequestValidationError) ErrorName() string { return "RedirectRequestValidationError" } + +// Error satisfies the builtin error interface +func (e RedirectRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRedirectRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RedirectRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RedirectRequestValidationError{} + +// Validate checks the field values on RedirectResponse with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *RedirectResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on RedirectResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// RedirectResponseMultiError, or nil if none found. +func (m *RedirectResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *RedirectResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Url + + if len(errors) > 0 { + return RedirectResponseMultiError(errors) + } + + return nil +} + +// RedirectResponseMultiError is an error wrapping multiple validation errors +// returned by RedirectResponse.ValidateAll() if the designated constraints +// aren't met. +type RedirectResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RedirectResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RedirectResponseMultiError) AllErrors() []error { return m } + +// RedirectResponseValidationError is the validation error returned by +// RedirectResponse.Validate if the designated constraints aren't met. +type RedirectResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RedirectResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RedirectResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RedirectResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RedirectResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RedirectResponseValidationError) ErrorName() string { return "RedirectResponseValidationError" } + +// Error satisfies the builtin error interface +func (e RedirectResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRedirectResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = RedirectResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RedirectResponseValidationError{} + +// Validate checks the field values on ClearCheckTimeActionRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ClearCheckTimeActionRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ClearCheckTimeActionRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ClearCheckTimeActionRequestMultiError, or nil if none found. +func (m *ClearCheckTimeActionRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ClearCheckTimeActionRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for TypeId + + if len(errors) > 0 { + return ClearCheckTimeActionRequestMultiError(errors) + } + + return nil +} + +// ClearCheckTimeActionRequestMultiError is an error wrapping multiple +// validation errors returned by ClearCheckTimeActionRequest.ValidateAll() if +// the designated constraints aren't met. +type ClearCheckTimeActionRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ClearCheckTimeActionRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ClearCheckTimeActionRequestMultiError) AllErrors() []error { return m } + +// ClearCheckTimeActionRequestValidationError is the validation error returned +// by ClearCheckTimeActionRequest.Validate if the designated constraints +// aren't met. +type ClearCheckTimeActionRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ClearCheckTimeActionRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ClearCheckTimeActionRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ClearCheckTimeActionRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ClearCheckTimeActionRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ClearCheckTimeActionRequestValidationError) ErrorName() string { + return "ClearCheckTimeActionRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ClearCheckTimeActionRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sClearCheckTimeActionRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ClearCheckTimeActionRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ClearCheckTimeActionRequestValidationError{} + +// Validate checks the field values on ClearCheckTimeActionResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ClearCheckTimeActionResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ClearCheckTimeActionResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ClearCheckTimeActionResponseMultiError, or nil if none found. +func (m *ClearCheckTimeActionResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ClearCheckTimeActionResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return ClearCheckTimeActionResponseMultiError(errors) + } + + return nil +} + +// ClearCheckTimeActionResponseMultiError is an error wrapping multiple +// validation errors returned by ClearCheckTimeActionResponse.ValidateAll() if +// the designated constraints aren't met. +type ClearCheckTimeActionResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ClearCheckTimeActionResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ClearCheckTimeActionResponseMultiError) AllErrors() []error { return m } + +// ClearCheckTimeActionResponseValidationError is the validation error returned +// by ClearCheckTimeActionResponse.Validate if the designated constraints +// aren't met. +type ClearCheckTimeActionResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ClearCheckTimeActionResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ClearCheckTimeActionResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ClearCheckTimeActionResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ClearCheckTimeActionResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ClearCheckTimeActionResponseValidationError) ErrorName() string { + return "ClearCheckTimeActionResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ClearCheckTimeActionResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sClearCheckTimeActionResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ClearCheckTimeActionResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ClearCheckTimeActionResponseValidationError{} + +// Validate checks the field values on AdminAddHelpRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminAddHelpRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminAddHelpRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminAddHelpRequestMultiError, or nil if none found. +func (m *AdminAddHelpRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminAddHelpRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + if utf8.RuneCountInString(m.GetTitle()) < 1 { + err := AdminAddHelpRequestValidationError{ + field: "Title", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for Url + + // no validation rules for ParentId + + // no validation rules for Sort + + // no validation rules for Content + + if len(errors) > 0 { + return AdminAddHelpRequestMultiError(errors) + } + + return nil +} + +// AdminAddHelpRequestMultiError is an error wrapping multiple validation +// errors returned by AdminAddHelpRequest.ValidateAll() if the designated +// constraints aren't met. +type AdminAddHelpRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminAddHelpRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminAddHelpRequestMultiError) AllErrors() []error { return m } + +// AdminAddHelpRequestValidationError is the validation error returned by +// AdminAddHelpRequest.Validate if the designated constraints aren't met. +type AdminAddHelpRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminAddHelpRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminAddHelpRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminAddHelpRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminAddHelpRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminAddHelpRequestValidationError) ErrorName() string { + return "AdminAddHelpRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminAddHelpRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminAddHelpRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminAddHelpRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminAddHelpRequestValidationError{} + +// Validate checks the field values on AdminAddHelpResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminAddHelpResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminAddHelpResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminAddHelpResponseMultiError, or nil if none found. +func (m *AdminAddHelpResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminAddHelpResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + if len(errors) > 0 { + return AdminAddHelpResponseMultiError(errors) + } + + return nil +} + +// AdminAddHelpResponseMultiError is an error wrapping multiple validation +// errors returned by AdminAddHelpResponse.ValidateAll() if the designated +// constraints aren't met. +type AdminAddHelpResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminAddHelpResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminAddHelpResponseMultiError) AllErrors() []error { return m } + +// AdminAddHelpResponseValidationError is the validation error returned by +// AdminAddHelpResponse.Validate if the designated constraints aren't met. +type AdminAddHelpResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminAddHelpResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminAddHelpResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminAddHelpResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminAddHelpResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminAddHelpResponseValidationError) ErrorName() string { + return "AdminAddHelpResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminAddHelpResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminAddHelpResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminAddHelpResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminAddHelpResponseValidationError{} + +// Validate checks the field values on AdminSearchHelpRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminSearchHelpRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminSearchHelpRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminSearchHelpRequestMultiError, or nil if none found. +func (m *AdminSearchHelpRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminSearchHelpRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Status + + // no validation rules for Page + + if len(errors) > 0 { + return AdminSearchHelpRequestMultiError(errors) + } + + return nil +} + +// AdminSearchHelpRequestMultiError is an error wrapping multiple validation +// errors returned by AdminSearchHelpRequest.ValidateAll() if the designated +// constraints aren't met. +type AdminSearchHelpRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminSearchHelpRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminSearchHelpRequestMultiError) AllErrors() []error { return m } + +// AdminSearchHelpRequestValidationError is the validation error returned by +// AdminSearchHelpRequest.Validate if the designated constraints aren't met. +type AdminSearchHelpRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminSearchHelpRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminSearchHelpRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminSearchHelpRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminSearchHelpRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminSearchHelpRequestValidationError) ErrorName() string { + return "AdminSearchHelpRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminSearchHelpRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminSearchHelpRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminSearchHelpRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminSearchHelpRequestValidationError{} + +// Validate checks the field values on AdminSearchHelpResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminSearchHelpResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminSearchHelpResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminSearchHelpResponseItemMultiError, or nil if none found. +func (m *AdminSearchHelpResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminSearchHelpResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for Title + + // no validation rules for Url + + // no validation rules for Sort + + // no validation rules for Status + + if len(errors) > 0 { + return AdminSearchHelpResponseItemMultiError(errors) + } + + return nil +} + +// AdminSearchHelpResponseItemMultiError is an error wrapping multiple +// validation errors returned by AdminSearchHelpResponseItem.ValidateAll() if +// the designated constraints aren't met. +type AdminSearchHelpResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminSearchHelpResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminSearchHelpResponseItemMultiError) AllErrors() []error { return m } + +// AdminSearchHelpResponseItemValidationError is the validation error returned +// by AdminSearchHelpResponseItem.Validate if the designated constraints +// aren't met. +type AdminSearchHelpResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminSearchHelpResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminSearchHelpResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminSearchHelpResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminSearchHelpResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminSearchHelpResponseItemValidationError) ErrorName() string { + return "AdminSearchHelpResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminSearchHelpResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminSearchHelpResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminSearchHelpResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminSearchHelpResponseItemValidationError{} + +// Validate checks the field values on AdminSearchHelpResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminSearchHelpResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminSearchHelpResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminSearchHelpResponseMultiError, or nil if none found. +func (m *AdminSearchHelpResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminSearchHelpResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AdminSearchHelpResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AdminSearchHelpResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AdminSearchHelpResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Num + + if len(errors) > 0 { + return AdminSearchHelpResponseMultiError(errors) + } + + return nil +} + +// AdminSearchHelpResponseMultiError is an error wrapping multiple validation +// errors returned by AdminSearchHelpResponse.ValidateAll() if the designated +// constraints aren't met. +type AdminSearchHelpResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminSearchHelpResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminSearchHelpResponseMultiError) AllErrors() []error { return m } + +// AdminSearchHelpResponseValidationError is the validation error returned by +// AdminSearchHelpResponse.Validate if the designated constraints aren't met. +type AdminSearchHelpResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminSearchHelpResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminSearchHelpResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminSearchHelpResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminSearchHelpResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminSearchHelpResponseValidationError) ErrorName() string { + return "AdminSearchHelpResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminSearchHelpResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminSearchHelpResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminSearchHelpResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminSearchHelpResponseValidationError{} + +// Validate checks the field values on AdminGetHelpRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminGetHelpRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminGetHelpRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminGetHelpRequestMultiError, or nil if none found. +func (m *AdminGetHelpRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminGetHelpRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + if len(errors) > 0 { + return AdminGetHelpRequestMultiError(errors) + } + + return nil +} + +// AdminGetHelpRequestMultiError is an error wrapping multiple validation +// errors returned by AdminGetHelpRequest.ValidateAll() if the designated +// constraints aren't met. +type AdminGetHelpRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminGetHelpRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminGetHelpRequestMultiError) AllErrors() []error { return m } + +// AdminGetHelpRequestValidationError is the validation error returned by +// AdminGetHelpRequest.Validate if the designated constraints aren't met. +type AdminGetHelpRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminGetHelpRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminGetHelpRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminGetHelpRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminGetHelpRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminGetHelpRequestValidationError) ErrorName() string { + return "AdminGetHelpRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminGetHelpRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminGetHelpRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminGetHelpRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminGetHelpRequestValidationError{} + +// Validate checks the field values on AdminGetHelpResponseItem with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminGetHelpResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminGetHelpResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminGetHelpResponseItemMultiError, or nil if none found. +func (m *AdminGetHelpResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminGetHelpResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for Title + + // no validation rules for Sort + + // no validation rules for Content + + if len(errors) > 0 { + return AdminGetHelpResponseItemMultiError(errors) + } + + return nil +} + +// AdminGetHelpResponseItemMultiError is an error wrapping multiple validation +// errors returned by AdminGetHelpResponseItem.ValidateAll() if the designated +// constraints aren't met. +type AdminGetHelpResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminGetHelpResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminGetHelpResponseItemMultiError) AllErrors() []error { return m } + +// AdminGetHelpResponseItemValidationError is the validation error returned by +// AdminGetHelpResponseItem.Validate if the designated constraints aren't met. +type AdminGetHelpResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminGetHelpResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminGetHelpResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminGetHelpResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminGetHelpResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminGetHelpResponseItemValidationError) ErrorName() string { + return "AdminGetHelpResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminGetHelpResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminGetHelpResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminGetHelpResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminGetHelpResponseItemValidationError{} + +// Validate checks the field values on AdminGetHelpResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminGetHelpResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminGetHelpResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminGetHelpResponseMultiError, or nil if none found. +func (m *AdminGetHelpResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminGetHelpResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for Title + + // no validation rules for Url + + // no validation rules for Sort + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AdminGetHelpResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AdminGetHelpResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AdminGetHelpResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + if len(errors) > 0 { + return AdminGetHelpResponseMultiError(errors) + } + + return nil +} + +// AdminGetHelpResponseMultiError is an error wrapping multiple validation +// errors returned by AdminGetHelpResponse.ValidateAll() if the designated +// constraints aren't met. +type AdminGetHelpResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminGetHelpResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminGetHelpResponseMultiError) AllErrors() []error { return m } + +// AdminGetHelpResponseValidationError is the validation error returned by +// AdminGetHelpResponse.Validate if the designated constraints aren't met. +type AdminGetHelpResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminGetHelpResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminGetHelpResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminGetHelpResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminGetHelpResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminGetHelpResponseValidationError) ErrorName() string { + return "AdminGetHelpResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminGetHelpResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminGetHelpResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminGetHelpResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminGetHelpResponseValidationError{} + +// Validate checks the field values on AdminDeleteHelpRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminDeleteHelpRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminDeleteHelpRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminDeleteHelpRequestMultiError, or nil if none found. +func (m *AdminDeleteHelpRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminDeleteHelpRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for Status + + if len(errors) > 0 { + return AdminDeleteHelpRequestMultiError(errors) + } + + return nil +} + +// AdminDeleteHelpRequestMultiError is an error wrapping multiple validation +// errors returned by AdminDeleteHelpRequest.ValidateAll() if the designated +// constraints aren't met. +type AdminDeleteHelpRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminDeleteHelpRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminDeleteHelpRequestMultiError) AllErrors() []error { return m } + +// AdminDeleteHelpRequestValidationError is the validation error returned by +// AdminDeleteHelpRequest.Validate if the designated constraints aren't met. +type AdminDeleteHelpRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminDeleteHelpRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminDeleteHelpRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminDeleteHelpRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminDeleteHelpRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminDeleteHelpRequestValidationError) ErrorName() string { + return "AdminDeleteHelpRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminDeleteHelpRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminDeleteHelpRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminDeleteHelpRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminDeleteHelpRequestValidationError{} + +// Validate checks the field values on AdminDeleteHelpResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminDeleteHelpResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminDeleteHelpResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminDeleteHelpResponseMultiError, or nil if none found. +func (m *AdminDeleteHelpResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminDeleteHelpResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return AdminDeleteHelpResponseMultiError(errors) + } + + return nil +} + +// AdminDeleteHelpResponseMultiError is an error wrapping multiple validation +// errors returned by AdminDeleteHelpResponse.ValidateAll() if the designated +// constraints aren't met. +type AdminDeleteHelpResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminDeleteHelpResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminDeleteHelpResponseMultiError) AllErrors() []error { return m } + +// AdminDeleteHelpResponseValidationError is the validation error returned by +// AdminDeleteHelpResponse.Validate if the designated constraints aren't met. +type AdminDeleteHelpResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminDeleteHelpResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminDeleteHelpResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminDeleteHelpResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminDeleteHelpResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminDeleteHelpResponseValidationError) ErrorName() string { + return "AdminDeleteHelpResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminDeleteHelpResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminDeleteHelpResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminDeleteHelpResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminDeleteHelpResponseValidationError{} + +// Validate checks the field values on AdminSearchExchangeRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminSearchExchangeRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminSearchExchangeRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminSearchExchangeRequestMultiError, or nil if none found. +func (m *AdminSearchExchangeRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminSearchExchangeRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Status + + // no validation rules for Page + + if len(errors) > 0 { + return AdminSearchExchangeRequestMultiError(errors) + } + + return nil +} + +// AdminSearchExchangeRequestMultiError is an error wrapping multiple +// validation errors returned by AdminSearchExchangeRequest.ValidateAll() if +// the designated constraints aren't met. +type AdminSearchExchangeRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminSearchExchangeRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminSearchExchangeRequestMultiError) AllErrors() []error { return m } + +// AdminSearchExchangeRequestValidationError is the validation error returned +// by AdminSearchExchangeRequest.Validate if the designated constraints aren't met. +type AdminSearchExchangeRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminSearchExchangeRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminSearchExchangeRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminSearchExchangeRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminSearchExchangeRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminSearchExchangeRequestValidationError) ErrorName() string { + return "AdminSearchExchangeRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminSearchExchangeRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminSearchExchangeRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminSearchExchangeRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminSearchExchangeRequestValidationError{} + +// Validate checks the field values on AdminSearchExchangeResponseItem with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminSearchExchangeResponseItem) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminSearchExchangeResponseItem with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// AdminSearchExchangeResponseItemMultiError, or nil if none found. +func (m *AdminSearchExchangeResponseItem) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminSearchExchangeResponseItem) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for Title + + // no validation rules for Content + + // no validation rules for Picture + + // no validation rules for Point + + // no validation rules for Status + + if len(errors) > 0 { + return AdminSearchExchangeResponseItemMultiError(errors) + } + + return nil +} + +// AdminSearchExchangeResponseItemMultiError is an error wrapping multiple +// validation errors returned by AdminSearchExchangeResponseItem.ValidateAll() +// if the designated constraints aren't met. +type AdminSearchExchangeResponseItemMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminSearchExchangeResponseItemMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminSearchExchangeResponseItemMultiError) AllErrors() []error { return m } + +// AdminSearchExchangeResponseItemValidationError is the validation error +// returned by AdminSearchExchangeResponseItem.Validate if the designated +// constraints aren't met. +type AdminSearchExchangeResponseItemValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminSearchExchangeResponseItemValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminSearchExchangeResponseItemValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminSearchExchangeResponseItemValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminSearchExchangeResponseItemValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminSearchExchangeResponseItemValidationError) ErrorName() string { + return "AdminSearchExchangeResponseItemValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminSearchExchangeResponseItemValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminSearchExchangeResponseItem.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminSearchExchangeResponseItemValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminSearchExchangeResponseItemValidationError{} + +// Validate checks the field values on AdminSearchExchangeResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminSearchExchangeResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminSearchExchangeResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminSearchExchangeResponseMultiError, or nil if none found. +func (m *AdminSearchExchangeResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminSearchExchangeResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + for idx, item := range m.GetList() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AdminSearchExchangeResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AdminSearchExchangeResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AdminSearchExchangeResponseValidationError{ + field: fmt.Sprintf("List[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + + // no validation rules for Count + + if len(errors) > 0 { + return AdminSearchExchangeResponseMultiError(errors) + } + + return nil +} + +// AdminSearchExchangeResponseMultiError is an error wrapping multiple +// validation errors returned by AdminSearchExchangeResponse.ValidateAll() if +// the designated constraints aren't met. +type AdminSearchExchangeResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminSearchExchangeResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminSearchExchangeResponseMultiError) AllErrors() []error { return m } + +// AdminSearchExchangeResponseValidationError is the validation error returned +// by AdminSearchExchangeResponse.Validate if the designated constraints +// aren't met. +type AdminSearchExchangeResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminSearchExchangeResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminSearchExchangeResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminSearchExchangeResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminSearchExchangeResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminSearchExchangeResponseValidationError) ErrorName() string { + return "AdminSearchExchangeResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminSearchExchangeResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminSearchExchangeResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminSearchExchangeResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminSearchExchangeResponseValidationError{} + +// Validate checks the field values on AdminAddExchangeRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminAddExchangeRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminAddExchangeRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminAddExchangeRequestMultiError, or nil if none found. +func (m *AdminAddExchangeRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminAddExchangeRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for Title + + // no validation rules for Content + + // no validation rules for Picture + + // no validation rules for Point + + if len(errors) > 0 { + return AdminAddExchangeRequestMultiError(errors) + } + + return nil +} + +// AdminAddExchangeRequestMultiError is an error wrapping multiple validation +// errors returned by AdminAddExchangeRequest.ValidateAll() if the designated +// constraints aren't met. +type AdminAddExchangeRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminAddExchangeRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminAddExchangeRequestMultiError) AllErrors() []error { return m } + +// AdminAddExchangeRequestValidationError is the validation error returned by +// AdminAddExchangeRequest.Validate if the designated constraints aren't met. +type AdminAddExchangeRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminAddExchangeRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminAddExchangeRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminAddExchangeRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminAddExchangeRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminAddExchangeRequestValidationError) ErrorName() string { + return "AdminAddExchangeRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminAddExchangeRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminAddExchangeRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminAddExchangeRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminAddExchangeRequestValidationError{} + +// Validate checks the field values on AdminAddExchangeResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminAddExchangeResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminAddExchangeResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminAddExchangeResponseMultiError, or nil if none found. +func (m *AdminAddExchangeResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminAddExchangeResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return AdminAddExchangeResponseMultiError(errors) + } + + return nil +} + +// AdminAddExchangeResponseMultiError is an error wrapping multiple validation +// errors returned by AdminAddExchangeResponse.ValidateAll() if the designated +// constraints aren't met. +type AdminAddExchangeResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminAddExchangeResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminAddExchangeResponseMultiError) AllErrors() []error { return m } + +// AdminAddExchangeResponseValidationError is the validation error returned by +// AdminAddExchangeResponse.Validate if the designated constraints aren't met. +type AdminAddExchangeResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminAddExchangeResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminAddExchangeResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminAddExchangeResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminAddExchangeResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminAddExchangeResponseValidationError) ErrorName() string { + return "AdminAddExchangeResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminAddExchangeResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminAddExchangeResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminAddExchangeResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminAddExchangeResponseValidationError{} + +// Validate checks the field values on AdminDeleteExchangeRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminDeleteExchangeRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminDeleteExchangeRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminDeleteExchangeRequestMultiError, or nil if none found. +func (m *AdminDeleteExchangeRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminDeleteExchangeRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Id + + // no validation rules for Status + + if len(errors) > 0 { + return AdminDeleteExchangeRequestMultiError(errors) + } + + return nil +} + +// AdminDeleteExchangeRequestMultiError is an error wrapping multiple +// validation errors returned by AdminDeleteExchangeRequest.ValidateAll() if +// the designated constraints aren't met. +type AdminDeleteExchangeRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminDeleteExchangeRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminDeleteExchangeRequestMultiError) AllErrors() []error { return m } + +// AdminDeleteExchangeRequestValidationError is the validation error returned +// by AdminDeleteExchangeRequest.Validate if the designated constraints aren't met. +type AdminDeleteExchangeRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminDeleteExchangeRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminDeleteExchangeRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminDeleteExchangeRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminDeleteExchangeRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminDeleteExchangeRequestValidationError) ErrorName() string { + return "AdminDeleteExchangeRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminDeleteExchangeRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminDeleteExchangeRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminDeleteExchangeRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminDeleteExchangeRequestValidationError{} + +// Validate checks the field values on AdminDeleteExchangeResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AdminDeleteExchangeResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AdminDeleteExchangeResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AdminDeleteExchangeResponseMultiError, or nil if none found. +func (m *AdminDeleteExchangeResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AdminDeleteExchangeResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for B + + // no validation rules for C + + // no validation rules for Ad + + if len(errors) > 0 { + return AdminDeleteExchangeResponseMultiError(errors) + } + + return nil +} + +// AdminDeleteExchangeResponseMultiError is an error wrapping multiple +// validation errors returned by AdminDeleteExchangeResponse.ValidateAll() if +// the designated constraints aren't met. +type AdminDeleteExchangeResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AdminDeleteExchangeResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AdminDeleteExchangeResponseMultiError) AllErrors() []error { return m } + +// AdminDeleteExchangeResponseValidationError is the validation error returned +// by AdminDeleteExchangeResponse.Validate if the designated constraints +// aren't met. +type AdminDeleteExchangeResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AdminDeleteExchangeResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AdminDeleteExchangeResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AdminDeleteExchangeResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AdminDeleteExchangeResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AdminDeleteExchangeResponseValidationError) ErrorName() string { + return "AdminDeleteExchangeResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AdminDeleteExchangeResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAdminDeleteExchangeResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AdminDeleteExchangeResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AdminDeleteExchangeResponseValidationError{} diff --git a/proto/v1/user.ts b/proto/v1/user.ts new file mode 100644 index 0000000..f623001 --- /dev/null +++ b/proto/v1/user.ts @@ -0,0 +1,856 @@ +export interface listCategoryRequest { + cityId: number + listType: string +} + +export interface listCategoryResponseItem { + title: string + url: string + isNew: boolean + num: number +} + +export interface listCategoryResponse { + list: listCategoryResponseItem[] +} + +export interface listQuestionPageRequest { + questionType: string + cityId: number + categoryId: number + page: number + createDay: number +} + +export interface listQuestionPageResponseItem { + userId: number + userLogo: string + userLevel: number + userName: string + title: string + url: string + lastTimeTitle: string + lastTimeTitleUrl: string + city: string + cityUrl: string + category: string + categoryUrl: string + answerCount: number + viewCount: number + commentCount: number + isNew: boolean +} + +export interface listQuestionPageResponse { + list: listQuestionPageResponseItem[] + count: number +} + +export interface listAnswerOfTheDayRequest { + page: number + size: number +} + +export interface listAnswerOfTheDayResponseItem { + title: string + url: string + postTime: string + content: string + answeredName: string + shortContent: string +} + +export interface listAnswerOfTheDayResponse { + list: listAnswerOfTheDayResponseItem[] + num: number +} + +export interface userRightInfoRequest { +} + +export interface userRightInfoResponse { + userId: number + userName: string + photo: string + point: number + messageCount: number + newNotice: number + newAnswer: number + newComment: number + userLevel: number + adminLevel: number + email: string +} + +export interface listHotTopUserRequest { +} + +export interface listHotTopUserResponseItem { + name: string + photo: string + userId: number +} + +export interface listHotTopUserResponse { + hots: listHotTopUserResponseItem[] + tops: listHotTopUserResponseItem[] + guestCount: number +} + +export interface listFilterQuestionRequest { + title: string +} + +export interface listFilterQuestionResponseItem { + title: string + url: string +} + +export interface listFilterQuestionResponse { + list: listFilterQuestionResponseItem[] +} + +export interface listFilterUserRequest { + user: string +} + +export interface listFilterUserResponseItem { + userId: number + userName: string +} + +export interface listFilterUserResponse { + list: listFilterUserResponseItem[] +} + +export interface listRelatedQuestionsRequest { + cityId: number + categoryId: number +} + +export interface listRelatedQuestionsResponseItem { + title: string + url: string + postTime: string +} + +export interface listRelatedQuestionsResponse { + list: listRelatedQuestionsResponseItem[] +} + +export interface searchQuestionRequest { + keyword: string + page: number +} + +export interface searchQuestionResponseItem { + userId: number + userLogo: string + userName: string + title: string + url: string + postTime: string + city: string + cityUrl: string + category: string + categoryUrl: string + answerCount: number + content: string +} + +export interface searchQuestionResponse { + list: searchQuestionResponseItem[] + count: number +} + +export interface questionDetailPageRequest { + aliasKey: string + nodeId: number + page: number +} + +export interface questionDetailPageResponseItemVote { + good: number + bad: number + vote: number + // 0没有点赞 点赞过 1 good 2 bad + status: number +} + +export interface questionDetailPageResponseItemUser { + logo: string + name: string + postNum: number + level: number + userId: number + isAnonymous: boolean + signature: string +} + +export interface questionDetailPageResponseItemQuestionItem { + forbidden: boolean + city: string + cityUrl: string + category: string + categoryUrl: string + title: string + cityId: number + categoryId: number +} + +export interface questionDetailPageResponseItem { + id: number + canManage: boolean + content: string + isDel: boolean + postTime: string + commentNum: number + vote: questionDetailPageResponseItemVote + user: questionDetailPageResponseItemUser + question: questionDetailPageResponseItemQuestionItem + comments: questionDetailPageResponseItem[] +} + +export interface questionDetailPageResponse { + question: questionDetailPageResponseItem + highestVoted: questionDetailPageResponseItem + answers: questionDetailPageResponseItem[] + answerCount: number + commentCount: number +} + +export interface userCenterProfilePageRequest { + userId: number + questionPage: number + answerPage: number +} + +export interface userCenterProfilePageResponseItem { + title: string + postTime: string + answerNum: string + url: string + isDel: boolean +} + +export interface userCenterProfilePageResponse { + online: boolean + userName: string + photo: string + point: number + registerTime: string + userLevel: number + aboutMe: string + interests: string + skype: string + email: string + google: string + questionCount: number + questions: userCenterProfilePageResponseItem[] + answerCount: number + answers: userCenterProfilePageResponseItem[] +} + +export interface userCenterEditPageRequest { + userId: number +} + +export interface userCenterEditPageData { + signature: string + aboutMe: string + interests: string + email: string + google: string + skype: string + isPlainText: boolean + isNotify: boolean + userId: number +} + +export interface userCenterEditPageResponse { + data: userCenterEditPageData +} + +export interface userCenterEditRequest { + data: userCenterEditPageData + userId: number +} + +export interface userCenterEditResponse { +} + +export interface userCenterInBoxPageRequest { + userId: number + page: number +} + +export interface userCenterInBoxPageResponseItem { + id: number + userName: string + userId: number + isNew: boolean + subject: string + lastTime: string +} + +export interface userCenterInBoxPageResponse { + list: userCenterInBoxPageResponseItem[] + count: number +} + +export interface deleteInboxRequest { + userId: number + ids: number[] +} + +export interface deleteInboxResponse { +} + +export interface messageSendRequest { + userIds: number[] + subject: string + content: string + //消息ThreadId + threadId: number +} + +export interface messageSendResponse { + id: number +} + +export interface messageDetailPageRequest { + messageId: number + page: number +} + +export interface messageDetailPageResponseItem { + userId: number + photo: string + userName: string + postTime: string + id: number + content: string + isNew: boolean +} + +export interface messageDetailPageResponse { + list: messageDetailPageResponseItem[] + fromName: string + count: number + threadId: number +} + +export interface userCenterPointsPageRequest { + userId: number + page: number +} + +export interface userCenterPointsPageResponseItem { + point: number + url: string + doTime: string + pointType: string + id: number +} + +export interface userCenterPointsPageResponse { + list: userCenterPointsPageResponseItem[] + count: number + allPoints: number +} + +export interface userCenterNewAnswersPageRequest { + userId: number + page: number +} + +export interface userCenterNewAnswersPageResponseItem { + userId: number + userName: string + logo: string + answer: string + answerTime: string + answerUrl: string + questionUrl: string + question: string + id: number +} + +export interface userCenterNewAnswersPageResponse { + list: userCenterNewAnswersPageResponseItem[] + count: number +} + +export interface userCenterNewCommentsPageRequest { + page: number + userId: number +} + +export interface userCenterNewCommentsPageResponseItem { + userId: number + userName: string + logo: string + comment: string + commentTime: string + commentUrl: string + answer: string + answerUrl: string + answeredId: number + id: number +} + +export interface userCenterNewCommentsPageResponse { + list: userCenterNewCommentsPageResponseItem[] + count: number +} + +export interface captchaRequest { +} + +export interface captchaResponse { + key: string + val: string +} + +export interface noticesPageRequest { + page: number +} + +export interface noticesPageResponseItem { + title: string + postTime: string + content: string + id: number +} + +export interface noticesPageResponse { + list: noticesPageResponseItem[] + count: number +} + +export interface forbiddenQuestionRequest { + questionId: number + isForbidden: boolean +} + +export interface forbiddenQuestionResponse { + isForbidden: boolean +} + +export interface addQuestionRequest { + title: string + content: string + categoryId: number + cityId: number + id: number + userId: number +} + +export interface addQuestionResponse { + url: string +} + +export interface getEditQuestionRequest { + nid: number +} + +export interface getEditQuestionResponse { + title: string + content: string + categoryId: number + cityId: number + id: number + isAnswer: boolean +} + +export interface editUserLogoRequest { + imageData: string + userId: number +} + +export interface editUserLogoResponse { + url: string +} + +export interface deleteNodeRequest { + nodeId: number + reasonTitle: string + reasonBody: string +} + +export interface deleteNodeResponse { +} + +export interface reportRequest { + nodeId: number + content: string + code: string + codeKey: string + type: string +} + +export interface reportResponse { +} + +export interface forwardQuestionRequest { + nodeId: number + content: string + originalContent: string + sendTo: string +} + +export interface forwardQuestionResponse { +} + +export interface addAnswerRequest { + id: number + parentId: number + title: string + content: string +} + +export interface addAnswerResponse { +} + +export interface voteNodeGoodRequest { + nodeId: number + isGood: boolean +} + +export interface voteNodeGoodResponse { +} + +export interface loginRequest { + loginType: string + userName: string + password: string + code: string +} + +export interface loginResponse { + code: string +} + +export interface adminRolesPageRequest { +} + +export interface adminRolesPageResponseItem { + name: string + id: number + isBlock: boolean +} + +export interface adminRolesPageResponse { + list: adminRolesPageResponseItem[] + count: number +} + +export interface adminUpdateRoleActionRequest { + title: string + id: number +} + +export interface adminUpdateRoleActionResponse { +} + +export interface adminUserPageRequest { + roleId: number + status: number + createdStart: string + createdEnd: string + loginStart: string + loginEnd: string + email: string + userId: number + name: string + page: number +} + +export interface adminUserPageResponseItem { + id: number + name: string + status: string + roles: number[] + registerTime: string + lastTime: string +} + +export interface adminUserPageResponse { + list: adminUserPageResponseItem[] + count: number +} + +export interface adminUpdateUserActionRequest { + userId: number + status?: number + roleIds?: number[] +} + +export interface adminUpdateUserActionResponse { +} + +export interface adminNodePageRequest { + status: number + // 1 answer 2 question + type: number + page: number + createdStart: string + createdEnd: string + title: string + name: string + userId: number +} + +export interface adminNodePageResponseItem { + id: number + title: string + type: string + userId: number + userName: string + status: number + url: string + promote: number + sticky: number + reason: string + postTime: string + changedTime: string +} + +export interface adminNodePageResponse { + list: adminNodePageResponseItem[] + count: number +} + +export interface updateNodeRequest { + status?: number + promote?: number + sticky?: number + nodeIds: number[] +} + +export interface updateNodeResponse { +} + +export interface helpPageRequest { + urlKey: string +} + +export interface helpPageResponseItem { + title: string + url: string + children: helpPageResponseItem[] + pid: number +} + +export interface helpPageResponse { + menus: helpPageResponseItem[] + content: string + title: string +} + +export interface randQuestionRequest { +} + +export interface randQuestionResponse { + url: string +} + +export interface exchangeRequest { +} + +export interface exchangeResponseItem { + title: string + content: string + point: number + image: string + id: number +} + +export interface exchangeResponse { + list: exchangeResponseItem[] +} + +export interface adminExchangeRequest { + page: number +} + +export interface adminExchangeResponseItem { + id: number + type: string + name: string + userId: number + points: number + email: string + addressCode: string + address: string + other: string + createdTime: string +} + +export interface adminExchangeResponse { + list: adminExchangeResponseItem[] + count: number +} + +export interface exchangeActionRequest { + id: number + name: string + email: string + addressCode: string + address: string + other: string +} + +export interface exchangeActionResponse { +} + +export interface adminPointsPageRequest { + userId: number + typeId: number + page: number + startTime: string + endTime: string +} + +export interface adminPointsPageResponseItem { + id: number + userId: number + point: number + createdTime: string + typeId: number + url: string + userName: string +} + +export interface adminPointsPageResponse { + list: adminPointsPageResponseItem[] + count: number +} + +export interface adminAddPointActionRequest { + userId: number + point: number + typeId: number + description: string + entryId: number +} + +export interface adminAddPointActionResponse { +} + +export interface redirectRequest { + id: number + type: string +} + +export interface redirectResponse { + url: string +} + +export interface clearCheckTimeActionRequest { + typeId: number +} + +export interface clearCheckTimeActionResponse { +} + +export interface adminAddHelpRequest { + id: number + title: string + url: string + parentId: number + sort: number + content: string +} + +export interface adminAddHelpResponse { + id: number +} + +export interface adminSearchHelpRequest { + status: number + page: number +} + +export interface adminSearchHelpResponseItem { + id: number + title: string + url: string + sort: number + status: number +} + +export interface adminSearchHelpResponse { + list: adminSearchHelpResponseItem[] + num: number +} + +export interface adminGetHelpRequest { + id: number +} + +export interface adminGetHelpResponseItem { + id: number + title: string + sort: number + content: string +} + +export interface adminGetHelpResponse { + id: number + title: string + url: string + sort: number + list: adminGetHelpResponseItem[] +} + +export interface adminDeleteHelpRequest { + id: number + status: number +} + +export interface adminDeleteHelpResponse { +} + +export interface adminSearchExchangeRequest { + status: number + page: number +} + +export interface adminSearchExchangeResponseItem { + id: number + title: string + content: string + picture: string + point: number + status: number +} + +export interface adminSearchExchangeResponse { + list: adminSearchExchangeResponseItem[] + count: number +} + +export interface adminAddExchangeRequest { + id: number + title: string + content: string + picture: string + point: number +} + +export interface adminAddExchangeResponse { +} + +export interface adminDeleteExchangeRequest { + id: number + status: number +} + +export interface adminDeleteExchangeResponse { + a: Uint8Array[] + b: number + c: { [key: string]: number } + ad: Uint8Array +} + diff --git a/proto/v1/user_grpc.pb.go b/proto/v1/user_grpc.pb.go index 8cd5713..bdaeb4e 100644 --- a/proto/v1/user_grpc.pb.go +++ b/proto/v1/user_grpc.pb.go @@ -4,7 +4,7 @@ // - protoc v3.18.1 // source: user.proto -package user +package answer import ( context "context" @@ -18,158 +18,2016 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 -// UserClient is the client API for User service. +// AnswerClient is the client API for Answer service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type UserClient interface { - List(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) +type AnswerClient interface { + //问题类型 + ListCategory(ctx context.Context, in *ListCategoryRequest, opts ...grpc.CallOption) (*ListCategoryResponse, error) + //问题列表 + ListQuestionPage(ctx context.Context, in *ListQuestionPageRequest, opts ...grpc.CallOption) (*ListQuestionPageResponse, error) + //Answer of the day + ListAnswerOfTheDay(ctx context.Context, in *ListAnswerOfTheDayRequest, opts ...grpc.CallOption) (*ListAnswerOfTheDayResponse, error) + //个人信息card + UserRightInfo(ctx context.Context, in *UserRightInfoRequest, opts ...grpc.CallOption) (*UserRightInfoResponse, error) + //hot/top用户 + ListHotTopUser(ctx context.Context, in *ListHotTopUserRequest, opts ...grpc.CallOption) (*ListHotTopUserResponse, error) + //问题搜索页面 + SearchQuestion(ctx context.Context, in *SearchQuestionRequest, opts ...grpc.CallOption) (*SearchQuestionResponse, error) + //问题联想 + ListFilterQuestion(ctx context.Context, in *ListFilterQuestionRequest, opts ...grpc.CallOption) (*ListFilterQuestionResponse, error) + //用户联想 + ListFilterUser(ctx context.Context, in *ListFilterUserRequest, opts ...grpc.CallOption) (*ListFilterUserResponse, error) + //推荐问题 + ListRelatedQuestions(ctx context.Context, in *ListRelatedQuestionsRequest, opts ...grpc.CallOption) (*ListRelatedQuestionsResponse, error) + //问题详情页 + QuestionDetailPage(ctx context.Context, in *QuestionDetailPageRequest, opts ...grpc.CallOption) (*QuestionDetailPageResponse, error) + //用户中心 + UserCenterProfilePage(ctx context.Context, in *UserCenterProfilePageRequest, opts ...grpc.CallOption) (*UserCenterProfilePageResponse, error) + UserCenterEditPage(ctx context.Context, in *UserCenterEditPageRequest, opts ...grpc.CallOption) (*UserCenterEditPageResponse, error) + UserCenterEdit(ctx context.Context, in *UserCenterEditRequest, opts ...grpc.CallOption) (*UserCenterEditResponse, error) + UserCenterInBoxPage(ctx context.Context, in *UserCenterInBoxPageRequest, opts ...grpc.CallOption) (*UserCenterInBoxPageResponse, error) + DeleteInbox(ctx context.Context, in *DeleteInboxRequest, opts ...grpc.CallOption) (*DeleteInboxResponse, error) + MessageSend(ctx context.Context, in *MessageSendRequest, opts ...grpc.CallOption) (*MessageSendResponse, error) + MessageDetailPage(ctx context.Context, in *MessageDetailPageRequest, opts ...grpc.CallOption) (*MessageDetailPageResponse, error) + UserCenterPointsPage(ctx context.Context, in *UserCenterPointsPageRequest, opts ...grpc.CallOption) (*UserCenterPointsPageResponse, error) + UserCenterNewAnswersPage(ctx context.Context, in *UserCenterNewAnswersPageRequest, opts ...grpc.CallOption) (*UserCenterNewAnswersPageResponse, error) + UserCenterNewCommentsPage(ctx context.Context, in *UserCenterNewCommentsPageRequest, opts ...grpc.CallOption) (*UserCenterNewCommentsPageResponse, error) + NoticesPage(ctx context.Context, in *NoticesPageRequest, opts ...grpc.CallOption) (*NoticesPageResponse, error) + Captcha(ctx context.Context, in *CaptchaRequest, opts ...grpc.CallOption) (*CaptchaResponse, error) + ForbiddenQuestion(ctx context.Context, in *ForbiddenQuestionRequest, opts ...grpc.CallOption) (*ForbiddenQuestionResponse, error) + AddQuestion(ctx context.Context, in *AddQuestionRequest, opts ...grpc.CallOption) (*AddQuestionResponse, error) + GetEditQuestion(ctx context.Context, in *GetEditQuestionRequest, opts ...grpc.CallOption) (*GetEditQuestionResponse, error) + AddAnswer(ctx context.Context, in *AddAnswerRequest, opts ...grpc.CallOption) (*AddAnswerResponse, error) + EditUserLogo(ctx context.Context, in *EditUserLogoRequest, opts ...grpc.CallOption) (*EditUserLogoResponse, error) + DeleteNode(ctx context.Context, in *DeleteNodeRequest, opts ...grpc.CallOption) (*DeleteNodeResponse, error) + Report(ctx context.Context, in *ReportRequest, opts ...grpc.CallOption) (*ReportResponse, error) + ForwardQuestion(ctx context.Context, in *ForwardQuestionRequest, opts ...grpc.CallOption) (*ForwardQuestionResponse, error) + VoteNodeGood(ctx context.Context, in *VoteNodeGoodRequest, opts ...grpc.CallOption) (*VoteNodeGoodResponse, error) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) - Delete(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) + AdminRolesPage(ctx context.Context, in *AdminRolesPageRequest, opts ...grpc.CallOption) (*AdminRolesPageResponse, error) + AdminUpdateRoleAction(ctx context.Context, in *AdminUpdateRoleActionRequest, opts ...grpc.CallOption) (*AdminUpdateRoleActionResponse, error) + AdminUserPage(ctx context.Context, in *AdminUserPageRequest, opts ...grpc.CallOption) (*AdminUserPageResponse, error) + AdminUpdateUserAction(ctx context.Context, in *AdminUpdateUserActionRequest, opts ...grpc.CallOption) (*AdminUpdateUserActionResponse, error) + AdminNodePage(ctx context.Context, in *AdminNodePageRequest, opts ...grpc.CallOption) (*AdminNodePageResponse, error) + UpdateNode(ctx context.Context, in *UpdateNodeRequest, opts ...grpc.CallOption) (*UpdateNodeResponse, error) + HelpPage(ctx context.Context, in *HelpPageRequest, opts ...grpc.CallOption) (*HelpPageResponse, error) + RandQuestion(ctx context.Context, in *RandQuestionRequest, opts ...grpc.CallOption) (*RandQuestionResponse, error) + Exchange(ctx context.Context, in *ExchangeRequest, opts ...grpc.CallOption) (*ExchangeResponse, error) + AdminExchange(ctx context.Context, in *AdminExchangeRequest, opts ...grpc.CallOption) (*AdminExchangeResponse, error) + ExchangeAction(ctx context.Context, in *ExchangeActionRequest, opts ...grpc.CallOption) (*ExchangeActionResponse, error) + AdminPointsPage(ctx context.Context, in *AdminPointsPageRequest, opts ...grpc.CallOption) (*AdminPointsPageResponse, error) + AdminAddPointAction(ctx context.Context, in *AdminAddPointActionRequest, opts ...grpc.CallOption) (*AdminAddPointActionResponse, error) + Redirect(ctx context.Context, in *RedirectRequest, opts ...grpc.CallOption) (*RedirectResponse, error) + ClearCheckTimeAction(ctx context.Context, in *ClearCheckTimeActionRequest, opts ...grpc.CallOption) (*ClearCheckTimeActionResponse, error) + AdminSearchHelp(ctx context.Context, in *AdminSearchHelpRequest, opts ...grpc.CallOption) (*AdminSearchHelpResponse, error) + AdminAddHelp(ctx context.Context, in *AdminAddHelpRequest, opts ...grpc.CallOption) (*AdminAddHelpResponse, error) + AdminGetHelp(ctx context.Context, in *AdminGetHelpRequest, opts ...grpc.CallOption) (*AdminGetHelpResponse, error) + AdminDeleteHelp(ctx context.Context, in *AdminDeleteHelpRequest, opts ...grpc.CallOption) (*AdminDeleteHelpResponse, error) + AdminSearchExchange(ctx context.Context, in *AdminSearchExchangeRequest, opts ...grpc.CallOption) (*AdminSearchExchangeResponse, error) + AdminAddExchange(ctx context.Context, in *AdminAddExchangeRequest, opts ...grpc.CallOption) (*AdminAddExchangeResponse, error) + AdminDeleteExchange(ctx context.Context, in *AdminDeleteExchangeRequest, opts ...grpc.CallOption) (*AdminDeleteExchangeResponse, error) } -type userClient struct { +type answerClient struct { cc grpc.ClientConnInterface } -func NewUserClient(cc grpc.ClientConnInterface) UserClient { - return &userClient{cc} +func NewAnswerClient(cc grpc.ClientConnInterface) AnswerClient { + return &answerClient{cc} } -func (c *userClient) List(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) { +func (c *answerClient) ListCategory(ctx context.Context, in *ListCategoryRequest, opts ...grpc.CallOption) (*ListCategoryResponse, error) { + out := new(ListCategoryResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/listCategory", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) ListQuestionPage(ctx context.Context, in *ListQuestionPageRequest, opts ...grpc.CallOption) (*ListQuestionPageResponse, error) { + out := new(ListQuestionPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/listQuestionPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) ListAnswerOfTheDay(ctx context.Context, in *ListAnswerOfTheDayRequest, opts ...grpc.CallOption) (*ListAnswerOfTheDayResponse, error) { + out := new(ListAnswerOfTheDayResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/listAnswerOfTheDay", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) UserRightInfo(ctx context.Context, in *UserRightInfoRequest, opts ...grpc.CallOption) (*UserRightInfoResponse, error) { + out := new(UserRightInfoResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/userRightInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) ListHotTopUser(ctx context.Context, in *ListHotTopUserRequest, opts ...grpc.CallOption) (*ListHotTopUserResponse, error) { + out := new(ListHotTopUserResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/listHotTopUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) SearchQuestion(ctx context.Context, in *SearchQuestionRequest, opts ...grpc.CallOption) (*SearchQuestionResponse, error) { + out := new(SearchQuestionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/searchQuestion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) ListFilterQuestion(ctx context.Context, in *ListFilterQuestionRequest, opts ...grpc.CallOption) (*ListFilterQuestionResponse, error) { + out := new(ListFilterQuestionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/listFilterQuestion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) ListFilterUser(ctx context.Context, in *ListFilterUserRequest, opts ...grpc.CallOption) (*ListFilterUserResponse, error) { + out := new(ListFilterUserResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/listFilterUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) ListRelatedQuestions(ctx context.Context, in *ListRelatedQuestionsRequest, opts ...grpc.CallOption) (*ListRelatedQuestionsResponse, error) { + out := new(ListRelatedQuestionsResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/listRelatedQuestions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) QuestionDetailPage(ctx context.Context, in *QuestionDetailPageRequest, opts ...grpc.CallOption) (*QuestionDetailPageResponse, error) { + out := new(QuestionDetailPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/questionDetailPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) UserCenterProfilePage(ctx context.Context, in *UserCenterProfilePageRequest, opts ...grpc.CallOption) (*UserCenterProfilePageResponse, error) { + out := new(UserCenterProfilePageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/userCenterProfilePage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) UserCenterEditPage(ctx context.Context, in *UserCenterEditPageRequest, opts ...grpc.CallOption) (*UserCenterEditPageResponse, error) { + out := new(UserCenterEditPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/userCenterEditPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) UserCenterEdit(ctx context.Context, in *UserCenterEditRequest, opts ...grpc.CallOption) (*UserCenterEditResponse, error) { + out := new(UserCenterEditResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/userCenterEdit", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) UserCenterInBoxPage(ctx context.Context, in *UserCenterInBoxPageRequest, opts ...grpc.CallOption) (*UserCenterInBoxPageResponse, error) { + out := new(UserCenterInBoxPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/userCenterInBoxPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) DeleteInbox(ctx context.Context, in *DeleteInboxRequest, opts ...grpc.CallOption) (*DeleteInboxResponse, error) { + out := new(DeleteInboxResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/deleteInbox", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) MessageSend(ctx context.Context, in *MessageSendRequest, opts ...grpc.CallOption) (*MessageSendResponse, error) { + out := new(MessageSendResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/messageSend", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) MessageDetailPage(ctx context.Context, in *MessageDetailPageRequest, opts ...grpc.CallOption) (*MessageDetailPageResponse, error) { + out := new(MessageDetailPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/messageDetailPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) UserCenterPointsPage(ctx context.Context, in *UserCenterPointsPageRequest, opts ...grpc.CallOption) (*UserCenterPointsPageResponse, error) { + out := new(UserCenterPointsPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/userCenterPointsPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) UserCenterNewAnswersPage(ctx context.Context, in *UserCenterNewAnswersPageRequest, opts ...grpc.CallOption) (*UserCenterNewAnswersPageResponse, error) { + out := new(UserCenterNewAnswersPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/userCenterNewAnswersPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) UserCenterNewCommentsPage(ctx context.Context, in *UserCenterNewCommentsPageRequest, opts ...grpc.CallOption) (*UserCenterNewCommentsPageResponse, error) { + out := new(UserCenterNewCommentsPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/userCenterNewCommentsPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) NoticesPage(ctx context.Context, in *NoticesPageRequest, opts ...grpc.CallOption) (*NoticesPageResponse, error) { + out := new(NoticesPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/noticesPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) Captcha(ctx context.Context, in *CaptchaRequest, opts ...grpc.CallOption) (*CaptchaResponse, error) { + out := new(CaptchaResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/captcha", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) ForbiddenQuestion(ctx context.Context, in *ForbiddenQuestionRequest, opts ...grpc.CallOption) (*ForbiddenQuestionResponse, error) { + out := new(ForbiddenQuestionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/forbiddenQuestion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AddQuestion(ctx context.Context, in *AddQuestionRequest, opts ...grpc.CallOption) (*AddQuestionResponse, error) { + out := new(AddQuestionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/addQuestion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) GetEditQuestion(ctx context.Context, in *GetEditQuestionRequest, opts ...grpc.CallOption) (*GetEditQuestionResponse, error) { + out := new(GetEditQuestionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/getEditQuestion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AddAnswer(ctx context.Context, in *AddAnswerRequest, opts ...grpc.CallOption) (*AddAnswerResponse, error) { + out := new(AddAnswerResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/addAnswer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) EditUserLogo(ctx context.Context, in *EditUserLogoRequest, opts ...grpc.CallOption) (*EditUserLogoResponse, error) { + out := new(EditUserLogoResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/editUserLogo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) DeleteNode(ctx context.Context, in *DeleteNodeRequest, opts ...grpc.CallOption) (*DeleteNodeResponse, error) { + out := new(DeleteNodeResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/deleteNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) Report(ctx context.Context, in *ReportRequest, opts ...grpc.CallOption) (*ReportResponse, error) { + out := new(ReportResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/report", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) ForwardQuestion(ctx context.Context, in *ForwardQuestionRequest, opts ...grpc.CallOption) (*ForwardQuestionResponse, error) { + out := new(ForwardQuestionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/forwardQuestion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) VoteNodeGood(ctx context.Context, in *VoteNodeGoodRequest, opts ...grpc.CallOption) (*VoteNodeGoodResponse, error) { + out := new(VoteNodeGoodResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/voteNodeGood", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) { out := new(LoginResponse) - err := c.cc.Invoke(ctx, "/com.web.api.user.user/list", in, out, opts...) + err := c.cc.Invoke(ctx, "/api.answer.Answer/login", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminRolesPage(ctx context.Context, in *AdminRolesPageRequest, opts ...grpc.CallOption) (*AdminRolesPageResponse, error) { + out := new(AdminRolesPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminRolesPage", in, out, opts...) if err != nil { return nil, err } - return out, nil + return out, nil +} + +func (c *answerClient) AdminUpdateRoleAction(ctx context.Context, in *AdminUpdateRoleActionRequest, opts ...grpc.CallOption) (*AdminUpdateRoleActionResponse, error) { + out := new(AdminUpdateRoleActionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminUpdateRoleAction", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminUserPage(ctx context.Context, in *AdminUserPageRequest, opts ...grpc.CallOption) (*AdminUserPageResponse, error) { + out := new(AdminUserPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminUserPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminUpdateUserAction(ctx context.Context, in *AdminUpdateUserActionRequest, opts ...grpc.CallOption) (*AdminUpdateUserActionResponse, error) { + out := new(AdminUpdateUserActionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminUpdateUserAction", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminNodePage(ctx context.Context, in *AdminNodePageRequest, opts ...grpc.CallOption) (*AdminNodePageResponse, error) { + out := new(AdminNodePageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminNodePage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) UpdateNode(ctx context.Context, in *UpdateNodeRequest, opts ...grpc.CallOption) (*UpdateNodeResponse, error) { + out := new(UpdateNodeResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/updateNode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) HelpPage(ctx context.Context, in *HelpPageRequest, opts ...grpc.CallOption) (*HelpPageResponse, error) { + out := new(HelpPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/helpPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) RandQuestion(ctx context.Context, in *RandQuestionRequest, opts ...grpc.CallOption) (*RandQuestionResponse, error) { + out := new(RandQuestionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/randQuestion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) Exchange(ctx context.Context, in *ExchangeRequest, opts ...grpc.CallOption) (*ExchangeResponse, error) { + out := new(ExchangeResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/exchange", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminExchange(ctx context.Context, in *AdminExchangeRequest, opts ...grpc.CallOption) (*AdminExchangeResponse, error) { + out := new(AdminExchangeResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminExchange", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) ExchangeAction(ctx context.Context, in *ExchangeActionRequest, opts ...grpc.CallOption) (*ExchangeActionResponse, error) { + out := new(ExchangeActionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/exchangeAction", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminPointsPage(ctx context.Context, in *AdminPointsPageRequest, opts ...grpc.CallOption) (*AdminPointsPageResponse, error) { + out := new(AdminPointsPageResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminPointsPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminAddPointAction(ctx context.Context, in *AdminAddPointActionRequest, opts ...grpc.CallOption) (*AdminAddPointActionResponse, error) { + out := new(AdminAddPointActionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminAddPointAction", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) Redirect(ctx context.Context, in *RedirectRequest, opts ...grpc.CallOption) (*RedirectResponse, error) { + out := new(RedirectResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/redirect", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) ClearCheckTimeAction(ctx context.Context, in *ClearCheckTimeActionRequest, opts ...grpc.CallOption) (*ClearCheckTimeActionResponse, error) { + out := new(ClearCheckTimeActionResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/clearCheckTimeAction", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminSearchHelp(ctx context.Context, in *AdminSearchHelpRequest, opts ...grpc.CallOption) (*AdminSearchHelpResponse, error) { + out := new(AdminSearchHelpResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminSearchHelp", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminAddHelp(ctx context.Context, in *AdminAddHelpRequest, opts ...grpc.CallOption) (*AdminAddHelpResponse, error) { + out := new(AdminAddHelpResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminAddHelp", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminGetHelp(ctx context.Context, in *AdminGetHelpRequest, opts ...grpc.CallOption) (*AdminGetHelpResponse, error) { + out := new(AdminGetHelpResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminGetHelp", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminDeleteHelp(ctx context.Context, in *AdminDeleteHelpRequest, opts ...grpc.CallOption) (*AdminDeleteHelpResponse, error) { + out := new(AdminDeleteHelpResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminDeleteHelp", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminSearchExchange(ctx context.Context, in *AdminSearchExchangeRequest, opts ...grpc.CallOption) (*AdminSearchExchangeResponse, error) { + out := new(AdminSearchExchangeResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminSearchExchange", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminAddExchange(ctx context.Context, in *AdminAddExchangeRequest, opts ...grpc.CallOption) (*AdminAddExchangeResponse, error) { + out := new(AdminAddExchangeResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminAddExchange", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *answerClient) AdminDeleteExchange(ctx context.Context, in *AdminDeleteExchangeRequest, opts ...grpc.CallOption) (*AdminDeleteExchangeResponse, error) { + out := new(AdminDeleteExchangeResponse) + err := c.cc.Invoke(ctx, "/api.answer.Answer/adminDeleteExchange", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AnswerServer is the server API for Answer service. +// All implementations must embed UnimplementedAnswerServer +// for forward compatibility +type AnswerServer interface { + //问题类型 + ListCategory(context.Context, *ListCategoryRequest) (*ListCategoryResponse, error) + //问题列表 + ListQuestionPage(context.Context, *ListQuestionPageRequest) (*ListQuestionPageResponse, error) + //Answer of the day + ListAnswerOfTheDay(context.Context, *ListAnswerOfTheDayRequest) (*ListAnswerOfTheDayResponse, error) + //个人信息card + UserRightInfo(context.Context, *UserRightInfoRequest) (*UserRightInfoResponse, error) + //hot/top用户 + ListHotTopUser(context.Context, *ListHotTopUserRequest) (*ListHotTopUserResponse, error) + //问题搜索页面 + SearchQuestion(context.Context, *SearchQuestionRequest) (*SearchQuestionResponse, error) + //问题联想 + ListFilterQuestion(context.Context, *ListFilterQuestionRequest) (*ListFilterQuestionResponse, error) + //用户联想 + ListFilterUser(context.Context, *ListFilterUserRequest) (*ListFilterUserResponse, error) + //推荐问题 + ListRelatedQuestions(context.Context, *ListRelatedQuestionsRequest) (*ListRelatedQuestionsResponse, error) + //问题详情页 + QuestionDetailPage(context.Context, *QuestionDetailPageRequest) (*QuestionDetailPageResponse, error) + //用户中心 + UserCenterProfilePage(context.Context, *UserCenterProfilePageRequest) (*UserCenterProfilePageResponse, error) + UserCenterEditPage(context.Context, *UserCenterEditPageRequest) (*UserCenterEditPageResponse, error) + UserCenterEdit(context.Context, *UserCenterEditRequest) (*UserCenterEditResponse, error) + UserCenterInBoxPage(context.Context, *UserCenterInBoxPageRequest) (*UserCenterInBoxPageResponse, error) + DeleteInbox(context.Context, *DeleteInboxRequest) (*DeleteInboxResponse, error) + MessageSend(context.Context, *MessageSendRequest) (*MessageSendResponse, error) + MessageDetailPage(context.Context, *MessageDetailPageRequest) (*MessageDetailPageResponse, error) + UserCenterPointsPage(context.Context, *UserCenterPointsPageRequest) (*UserCenterPointsPageResponse, error) + UserCenterNewAnswersPage(context.Context, *UserCenterNewAnswersPageRequest) (*UserCenterNewAnswersPageResponse, error) + UserCenterNewCommentsPage(context.Context, *UserCenterNewCommentsPageRequest) (*UserCenterNewCommentsPageResponse, error) + NoticesPage(context.Context, *NoticesPageRequest) (*NoticesPageResponse, error) + Captcha(context.Context, *CaptchaRequest) (*CaptchaResponse, error) + ForbiddenQuestion(context.Context, *ForbiddenQuestionRequest) (*ForbiddenQuestionResponse, error) + AddQuestion(context.Context, *AddQuestionRequest) (*AddQuestionResponse, error) + GetEditQuestion(context.Context, *GetEditQuestionRequest) (*GetEditQuestionResponse, error) + AddAnswer(context.Context, *AddAnswerRequest) (*AddAnswerResponse, error) + EditUserLogo(context.Context, *EditUserLogoRequest) (*EditUserLogoResponse, error) + DeleteNode(context.Context, *DeleteNodeRequest) (*DeleteNodeResponse, error) + Report(context.Context, *ReportRequest) (*ReportResponse, error) + ForwardQuestion(context.Context, *ForwardQuestionRequest) (*ForwardQuestionResponse, error) + VoteNodeGood(context.Context, *VoteNodeGoodRequest) (*VoteNodeGoodResponse, error) + Login(context.Context, *LoginRequest) (*LoginResponse, error) + AdminRolesPage(context.Context, *AdminRolesPageRequest) (*AdminRolesPageResponse, error) + AdminUpdateRoleAction(context.Context, *AdminUpdateRoleActionRequest) (*AdminUpdateRoleActionResponse, error) + AdminUserPage(context.Context, *AdminUserPageRequest) (*AdminUserPageResponse, error) + AdminUpdateUserAction(context.Context, *AdminUpdateUserActionRequest) (*AdminUpdateUserActionResponse, error) + AdminNodePage(context.Context, *AdminNodePageRequest) (*AdminNodePageResponse, error) + UpdateNode(context.Context, *UpdateNodeRequest) (*UpdateNodeResponse, error) + HelpPage(context.Context, *HelpPageRequest) (*HelpPageResponse, error) + RandQuestion(context.Context, *RandQuestionRequest) (*RandQuestionResponse, error) + Exchange(context.Context, *ExchangeRequest) (*ExchangeResponse, error) + AdminExchange(context.Context, *AdminExchangeRequest) (*AdminExchangeResponse, error) + ExchangeAction(context.Context, *ExchangeActionRequest) (*ExchangeActionResponse, error) + AdminPointsPage(context.Context, *AdminPointsPageRequest) (*AdminPointsPageResponse, error) + AdminAddPointAction(context.Context, *AdminAddPointActionRequest) (*AdminAddPointActionResponse, error) + Redirect(context.Context, *RedirectRequest) (*RedirectResponse, error) + ClearCheckTimeAction(context.Context, *ClearCheckTimeActionRequest) (*ClearCheckTimeActionResponse, error) + AdminSearchHelp(context.Context, *AdminSearchHelpRequest) (*AdminSearchHelpResponse, error) + AdminAddHelp(context.Context, *AdminAddHelpRequest) (*AdminAddHelpResponse, error) + AdminGetHelp(context.Context, *AdminGetHelpRequest) (*AdminGetHelpResponse, error) + AdminDeleteHelp(context.Context, *AdminDeleteHelpRequest) (*AdminDeleteHelpResponse, error) + AdminSearchExchange(context.Context, *AdminSearchExchangeRequest) (*AdminSearchExchangeResponse, error) + AdminAddExchange(context.Context, *AdminAddExchangeRequest) (*AdminAddExchangeResponse, error) + AdminDeleteExchange(context.Context, *AdminDeleteExchangeRequest) (*AdminDeleteExchangeResponse, error) + mustEmbedUnimplementedAnswerServer() +} + +// UnimplementedAnswerServer must be embedded to have forward compatible implementations. +type UnimplementedAnswerServer struct { +} + +func (UnimplementedAnswerServer) ListCategory(context.Context, *ListCategoryRequest) (*ListCategoryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListCategory not implemented") +} +func (UnimplementedAnswerServer) ListQuestionPage(context.Context, *ListQuestionPageRequest) (*ListQuestionPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListQuestionPage not implemented") +} +func (UnimplementedAnswerServer) ListAnswerOfTheDay(context.Context, *ListAnswerOfTheDayRequest) (*ListAnswerOfTheDayResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListAnswerOfTheDay not implemented") +} +func (UnimplementedAnswerServer) UserRightInfo(context.Context, *UserRightInfoRequest) (*UserRightInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserRightInfo not implemented") +} +func (UnimplementedAnswerServer) ListHotTopUser(context.Context, *ListHotTopUserRequest) (*ListHotTopUserResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListHotTopUser not implemented") +} +func (UnimplementedAnswerServer) SearchQuestion(context.Context, *SearchQuestionRequest) (*SearchQuestionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SearchQuestion not implemented") +} +func (UnimplementedAnswerServer) ListFilterQuestion(context.Context, *ListFilterQuestionRequest) (*ListFilterQuestionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFilterQuestion not implemented") +} +func (UnimplementedAnswerServer) ListFilterUser(context.Context, *ListFilterUserRequest) (*ListFilterUserResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFilterUser not implemented") +} +func (UnimplementedAnswerServer) ListRelatedQuestions(context.Context, *ListRelatedQuestionsRequest) (*ListRelatedQuestionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRelatedQuestions not implemented") +} +func (UnimplementedAnswerServer) QuestionDetailPage(context.Context, *QuestionDetailPageRequest) (*QuestionDetailPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method QuestionDetailPage not implemented") +} +func (UnimplementedAnswerServer) UserCenterProfilePage(context.Context, *UserCenterProfilePageRequest) (*UserCenterProfilePageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserCenterProfilePage not implemented") +} +func (UnimplementedAnswerServer) UserCenterEditPage(context.Context, *UserCenterEditPageRequest) (*UserCenterEditPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserCenterEditPage not implemented") +} +func (UnimplementedAnswerServer) UserCenterEdit(context.Context, *UserCenterEditRequest) (*UserCenterEditResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserCenterEdit not implemented") +} +func (UnimplementedAnswerServer) UserCenterInBoxPage(context.Context, *UserCenterInBoxPageRequest) (*UserCenterInBoxPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserCenterInBoxPage not implemented") +} +func (UnimplementedAnswerServer) DeleteInbox(context.Context, *DeleteInboxRequest) (*DeleteInboxResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteInbox not implemented") +} +func (UnimplementedAnswerServer) MessageSend(context.Context, *MessageSendRequest) (*MessageSendResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MessageSend not implemented") +} +func (UnimplementedAnswerServer) MessageDetailPage(context.Context, *MessageDetailPageRequest) (*MessageDetailPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MessageDetailPage not implemented") +} +func (UnimplementedAnswerServer) UserCenterPointsPage(context.Context, *UserCenterPointsPageRequest) (*UserCenterPointsPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserCenterPointsPage not implemented") +} +func (UnimplementedAnswerServer) UserCenterNewAnswersPage(context.Context, *UserCenterNewAnswersPageRequest) (*UserCenterNewAnswersPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserCenterNewAnswersPage not implemented") +} +func (UnimplementedAnswerServer) UserCenterNewCommentsPage(context.Context, *UserCenterNewCommentsPageRequest) (*UserCenterNewCommentsPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserCenterNewCommentsPage not implemented") +} +func (UnimplementedAnswerServer) NoticesPage(context.Context, *NoticesPageRequest) (*NoticesPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NoticesPage not implemented") +} +func (UnimplementedAnswerServer) Captcha(context.Context, *CaptchaRequest) (*CaptchaResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Captcha not implemented") +} +func (UnimplementedAnswerServer) ForbiddenQuestion(context.Context, *ForbiddenQuestionRequest) (*ForbiddenQuestionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ForbiddenQuestion not implemented") +} +func (UnimplementedAnswerServer) AddQuestion(context.Context, *AddQuestionRequest) (*AddQuestionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddQuestion not implemented") +} +func (UnimplementedAnswerServer) GetEditQuestion(context.Context, *GetEditQuestionRequest) (*GetEditQuestionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetEditQuestion not implemented") +} +func (UnimplementedAnswerServer) AddAnswer(context.Context, *AddAnswerRequest) (*AddAnswerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddAnswer not implemented") +} +func (UnimplementedAnswerServer) EditUserLogo(context.Context, *EditUserLogoRequest) (*EditUserLogoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EditUserLogo not implemented") +} +func (UnimplementedAnswerServer) DeleteNode(context.Context, *DeleteNodeRequest) (*DeleteNodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteNode not implemented") +} +func (UnimplementedAnswerServer) Report(context.Context, *ReportRequest) (*ReportResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Report not implemented") +} +func (UnimplementedAnswerServer) ForwardQuestion(context.Context, *ForwardQuestionRequest) (*ForwardQuestionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ForwardQuestion not implemented") +} +func (UnimplementedAnswerServer) VoteNodeGood(context.Context, *VoteNodeGoodRequest) (*VoteNodeGoodResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method VoteNodeGood not implemented") +} +func (UnimplementedAnswerServer) Login(context.Context, *LoginRequest) (*LoginResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Login not implemented") +} +func (UnimplementedAnswerServer) AdminRolesPage(context.Context, *AdminRolesPageRequest) (*AdminRolesPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminRolesPage not implemented") +} +func (UnimplementedAnswerServer) AdminUpdateRoleAction(context.Context, *AdminUpdateRoleActionRequest) (*AdminUpdateRoleActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminUpdateRoleAction not implemented") +} +func (UnimplementedAnswerServer) AdminUserPage(context.Context, *AdminUserPageRequest) (*AdminUserPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminUserPage not implemented") +} +func (UnimplementedAnswerServer) AdminUpdateUserAction(context.Context, *AdminUpdateUserActionRequest) (*AdminUpdateUserActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminUpdateUserAction not implemented") +} +func (UnimplementedAnswerServer) AdminNodePage(context.Context, *AdminNodePageRequest) (*AdminNodePageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminNodePage not implemented") +} +func (UnimplementedAnswerServer) UpdateNode(context.Context, *UpdateNodeRequest) (*UpdateNodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNode not implemented") +} +func (UnimplementedAnswerServer) HelpPage(context.Context, *HelpPageRequest) (*HelpPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method HelpPage not implemented") +} +func (UnimplementedAnswerServer) RandQuestion(context.Context, *RandQuestionRequest) (*RandQuestionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RandQuestion not implemented") +} +func (UnimplementedAnswerServer) Exchange(context.Context, *ExchangeRequest) (*ExchangeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Exchange not implemented") +} +func (UnimplementedAnswerServer) AdminExchange(context.Context, *AdminExchangeRequest) (*AdminExchangeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminExchange not implemented") +} +func (UnimplementedAnswerServer) ExchangeAction(context.Context, *ExchangeActionRequest) (*ExchangeActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ExchangeAction not implemented") +} +func (UnimplementedAnswerServer) AdminPointsPage(context.Context, *AdminPointsPageRequest) (*AdminPointsPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminPointsPage not implemented") +} +func (UnimplementedAnswerServer) AdminAddPointAction(context.Context, *AdminAddPointActionRequest) (*AdminAddPointActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminAddPointAction not implemented") +} +func (UnimplementedAnswerServer) Redirect(context.Context, *RedirectRequest) (*RedirectResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Redirect not implemented") +} +func (UnimplementedAnswerServer) ClearCheckTimeAction(context.Context, *ClearCheckTimeActionRequest) (*ClearCheckTimeActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ClearCheckTimeAction not implemented") +} +func (UnimplementedAnswerServer) AdminSearchHelp(context.Context, *AdminSearchHelpRequest) (*AdminSearchHelpResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminSearchHelp not implemented") +} +func (UnimplementedAnswerServer) AdminAddHelp(context.Context, *AdminAddHelpRequest) (*AdminAddHelpResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminAddHelp not implemented") +} +func (UnimplementedAnswerServer) AdminGetHelp(context.Context, *AdminGetHelpRequest) (*AdminGetHelpResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminGetHelp not implemented") +} +func (UnimplementedAnswerServer) AdminDeleteHelp(context.Context, *AdminDeleteHelpRequest) (*AdminDeleteHelpResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminDeleteHelp not implemented") +} +func (UnimplementedAnswerServer) AdminSearchExchange(context.Context, *AdminSearchExchangeRequest) (*AdminSearchExchangeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminSearchExchange not implemented") +} +func (UnimplementedAnswerServer) AdminAddExchange(context.Context, *AdminAddExchangeRequest) (*AdminAddExchangeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminAddExchange not implemented") +} +func (UnimplementedAnswerServer) AdminDeleteExchange(context.Context, *AdminDeleteExchangeRequest) (*AdminDeleteExchangeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminDeleteExchange not implemented") +} +func (UnimplementedAnswerServer) mustEmbedUnimplementedAnswerServer() {} + +// UnsafeAnswerServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to AnswerServer will +// result in compilation errors. +type UnsafeAnswerServer interface { + mustEmbedUnimplementedAnswerServer() +} + +func RegisterAnswerServer(s grpc.ServiceRegistrar, srv AnswerServer) { + s.RegisterService(&Answer_ServiceDesc, srv) +} + +func _Answer_ListCategory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListCategoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).ListCategory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/listCategory", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).ListCategory(ctx, req.(*ListCategoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_ListQuestionPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListQuestionPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).ListQuestionPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/listQuestionPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).ListQuestionPage(ctx, req.(*ListQuestionPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_ListAnswerOfTheDay_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListAnswerOfTheDayRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).ListAnswerOfTheDay(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/listAnswerOfTheDay", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).ListAnswerOfTheDay(ctx, req.(*ListAnswerOfTheDayRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_UserRightInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserRightInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).UserRightInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/userRightInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).UserRightInfo(ctx, req.(*UserRightInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_ListHotTopUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListHotTopUserRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).ListHotTopUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/listHotTopUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).ListHotTopUser(ctx, req.(*ListHotTopUserRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_SearchQuestion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchQuestionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).SearchQuestion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/searchQuestion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).SearchQuestion(ctx, req.(*SearchQuestionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_ListFilterQuestion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFilterQuestionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).ListFilterQuestion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/listFilterQuestion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).ListFilterQuestion(ctx, req.(*ListFilterQuestionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_ListFilterUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFilterUserRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).ListFilterUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/listFilterUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).ListFilterUser(ctx, req.(*ListFilterUserRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_ListRelatedQuestions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRelatedQuestionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).ListRelatedQuestions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/listRelatedQuestions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).ListRelatedQuestions(ctx, req.(*ListRelatedQuestionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_QuestionDetailPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QuestionDetailPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).QuestionDetailPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/questionDetailPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).QuestionDetailPage(ctx, req.(*QuestionDetailPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_UserCenterProfilePage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserCenterProfilePageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).UserCenterProfilePage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/userCenterProfilePage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).UserCenterProfilePage(ctx, req.(*UserCenterProfilePageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_UserCenterEditPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserCenterEditPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).UserCenterEditPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/userCenterEditPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).UserCenterEditPage(ctx, req.(*UserCenterEditPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_UserCenterEdit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserCenterEditRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).UserCenterEdit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/userCenterEdit", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).UserCenterEdit(ctx, req.(*UserCenterEditRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_UserCenterInBoxPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserCenterInBoxPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).UserCenterInBoxPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/userCenterInBoxPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).UserCenterInBoxPage(ctx, req.(*UserCenterInBoxPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_DeleteInbox_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteInboxRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).DeleteInbox(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/deleteInbox", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).DeleteInbox(ctx, req.(*DeleteInboxRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_MessageSend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MessageSendRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).MessageSend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/messageSend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).MessageSend(ctx, req.(*MessageSendRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_MessageDetailPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MessageDetailPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).MessageDetailPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/messageDetailPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).MessageDetailPage(ctx, req.(*MessageDetailPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_UserCenterPointsPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserCenterPointsPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).UserCenterPointsPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/userCenterPointsPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).UserCenterPointsPage(ctx, req.(*UserCenterPointsPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_UserCenterNewAnswersPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserCenterNewAnswersPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).UserCenterNewAnswersPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/userCenterNewAnswersPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).UserCenterNewAnswersPage(ctx, req.(*UserCenterNewAnswersPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_UserCenterNewCommentsPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserCenterNewCommentsPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).UserCenterNewCommentsPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/userCenterNewCommentsPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).UserCenterNewCommentsPage(ctx, req.(*UserCenterNewCommentsPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_NoticesPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NoticesPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).NoticesPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/noticesPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).NoticesPage(ctx, req.(*NoticesPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_Captcha_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CaptchaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).Captcha(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/captcha", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).Captcha(ctx, req.(*CaptchaRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_ForbiddenQuestion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ForbiddenQuestionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).ForbiddenQuestion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/forbiddenQuestion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).ForbiddenQuestion(ctx, req.(*ForbiddenQuestionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_AddQuestion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddQuestionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AddQuestion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/addQuestion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AddQuestion(ctx, req.(*AddQuestionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_GetEditQuestion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetEditQuestionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).GetEditQuestion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/getEditQuestion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).GetEditQuestion(ctx, req.(*GetEditQuestionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_AddAnswer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddAnswerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AddAnswer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/addAnswer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AddAnswer(ctx, req.(*AddAnswerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_EditUserLogo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EditUserLogoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).EditUserLogo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/editUserLogo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).EditUserLogo(ctx, req.(*EditUserLogoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_DeleteNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteNodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).DeleteNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/deleteNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).DeleteNode(ctx, req.(*DeleteNodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_Report_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReportRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).Report(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/report", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).Report(ctx, req.(*ReportRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_ForwardQuestion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ForwardQuestionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).ForwardQuestion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/forwardQuestion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).ForwardQuestion(ctx, req.(*ForwardQuestionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_VoteNodeGood_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VoteNodeGoodRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).VoteNodeGood(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/voteNodeGood", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).VoteNodeGood(ctx, req.(*VoteNodeGoodRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_Login_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LoginRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).Login(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/login", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).Login(ctx, req.(*LoginRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_AdminRolesPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminRolesPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AdminRolesPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminRolesPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminRolesPage(ctx, req.(*AdminRolesPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_AdminUpdateRoleAction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminUpdateRoleActionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AdminUpdateRoleAction(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminUpdateRoleAction", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminUpdateRoleAction(ctx, req.(*AdminUpdateRoleActionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_AdminUserPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminUserPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AdminUserPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminUserPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminUserPage(ctx, req.(*AdminUserPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_AdminUpdateUserAction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminUpdateUserActionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AdminUpdateUserAction(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminUpdateUserAction", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminUpdateUserAction(ctx, req.(*AdminUpdateUserActionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_AdminNodePage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminNodePageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AdminNodePage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminNodePage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminNodePage(ctx, req.(*AdminNodePageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_UpdateNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).UpdateNode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/updateNode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).UpdateNode(ctx, req.(*UpdateNodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_HelpPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HelpPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).HelpPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/helpPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).HelpPage(ctx, req.(*HelpPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_RandQuestion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RandQuestionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).RandQuestion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/randQuestion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).RandQuestion(ctx, req.(*RandQuestionRequest)) + } + return interceptor(ctx, in, info, handler) } -func (c *userClient) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) { - out := new(LoginResponse) - err := c.cc.Invoke(ctx, "/com.web.api.user.user/login", in, out, opts...) - if err != nil { +func _Answer_Exchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExchangeRequest) + if err := dec(in); err != nil { return nil, err } - return out, nil + if interceptor == nil { + return srv.(AnswerServer).Exchange(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/exchange", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).Exchange(ctx, req.(*ExchangeRequest)) + } + return interceptor(ctx, in, info, handler) } -func (c *userClient) Delete(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) { - out := new(LoginResponse) - err := c.cc.Invoke(ctx, "/com.web.api.user.user/delete", in, out, opts...) - if err != nil { +func _Answer_AdminExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminExchangeRequest) + if err := dec(in); err != nil { return nil, err } - return out, nil + if interceptor == nil { + return srv.(AnswerServer).AdminExchange(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminExchange", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminExchange(ctx, req.(*AdminExchangeRequest)) + } + return interceptor(ctx, in, info, handler) } -// UserServer is the server API for User service. -// All implementations must embed UnimplementedUserServer -// for forward compatibility -type UserServer interface { - List(context.Context, *LoginRequest) (*LoginResponse, error) - Login(context.Context, *LoginRequest) (*LoginResponse, error) - Delete(context.Context, *LoginRequest) (*LoginResponse, error) - mustEmbedUnimplementedUserServer() +func _Answer_ExchangeAction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExchangeActionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).ExchangeAction(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/exchangeAction", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).ExchangeAction(ctx, req.(*ExchangeActionRequest)) + } + return interceptor(ctx, in, info, handler) } -// UnimplementedUserServer must be embedded to have forward compatible implementations. -type UnimplementedUserServer struct { +func _Answer_AdminPointsPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminPointsPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AdminPointsPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminPointsPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminPointsPage(ctx, req.(*AdminPointsPageRequest)) + } + return interceptor(ctx, in, info, handler) } -func (UnimplementedUserServer) List(context.Context, *LoginRequest) (*LoginResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method List not implemented") +func _Answer_AdminAddPointAction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminAddPointActionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AdminAddPointAction(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminAddPointAction", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminAddPointAction(ctx, req.(*AdminAddPointActionRequest)) + } + return interceptor(ctx, in, info, handler) } -func (UnimplementedUserServer) Login(context.Context, *LoginRequest) (*LoginResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Login not implemented") + +func _Answer_Redirect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RedirectRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).Redirect(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/redirect", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).Redirect(ctx, req.(*RedirectRequest)) + } + return interceptor(ctx, in, info, handler) } -func (UnimplementedUserServer) Delete(context.Context, *LoginRequest) (*LoginResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented") + +func _Answer_ClearCheckTimeAction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ClearCheckTimeActionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).ClearCheckTimeAction(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/clearCheckTimeAction", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).ClearCheckTimeAction(ctx, req.(*ClearCheckTimeActionRequest)) + } + return interceptor(ctx, in, info, handler) } -func (UnimplementedUserServer) mustEmbedUnimplementedUserServer() {} -// UnsafeUserServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to UserServer will -// result in compilation errors. -type UnsafeUserServer interface { - mustEmbedUnimplementedUserServer() +func _Answer_AdminSearchHelp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminSearchHelpRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AdminSearchHelp(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminSearchHelp", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminSearchHelp(ctx, req.(*AdminSearchHelpRequest)) + } + return interceptor(ctx, in, info, handler) } -func RegisterUserServer(s grpc.ServiceRegistrar, srv UserServer) { - s.RegisterService(&User_ServiceDesc, srv) +func _Answer_AdminAddHelp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminAddHelpRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AdminAddHelp(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminAddHelp", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminAddHelp(ctx, req.(*AdminAddHelpRequest)) + } + return interceptor(ctx, in, info, handler) } -func _User_List_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(LoginRequest) +func _Answer_AdminGetHelp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminGetHelpRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(UserServer).List(ctx, in) + return srv.(AnswerServer).AdminGetHelp(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/com.web.api.user.user/list", + FullMethod: "/api.answer.Answer/adminGetHelp", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).List(ctx, req.(*LoginRequest)) + return srv.(AnswerServer).AdminGetHelp(ctx, req.(*AdminGetHelpRequest)) } return interceptor(ctx, in, info, handler) } -func _User_Login_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(LoginRequest) +func _Answer_AdminDeleteHelp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminDeleteHelpRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(UserServer).Login(ctx, in) + return srv.(AnswerServer).AdminDeleteHelp(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/com.web.api.user.user/login", + FullMethod: "/api.answer.Answer/adminDeleteHelp", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).Login(ctx, req.(*LoginRequest)) + return srv.(AnswerServer).AdminDeleteHelp(ctx, req.(*AdminDeleteHelpRequest)) } return interceptor(ctx, in, info, handler) } -func _User_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(LoginRequest) +func _Answer_AdminSearchExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminSearchExchangeRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(UserServer).Delete(ctx, in) + return srv.(AnswerServer).AdminSearchExchange(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/com.web.api.user.user/delete", + FullMethod: "/api.answer.Answer/adminSearchExchange", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).Delete(ctx, req.(*LoginRequest)) + return srv.(AnswerServer).AdminSearchExchange(ctx, req.(*AdminSearchExchangeRequest)) } return interceptor(ctx, in, info, handler) } -// User_ServiceDesc is the grpc.ServiceDesc for User service. +func _Answer_AdminAddExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminAddExchangeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AdminAddExchange(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminAddExchange", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminAddExchange(ctx, req.(*AdminAddExchangeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Answer_AdminDeleteExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminDeleteExchangeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnswerServer).AdminDeleteExchange(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.answer.Answer/adminDeleteExchange", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnswerServer).AdminDeleteExchange(ctx, req.(*AdminDeleteExchangeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Answer_ServiceDesc is the grpc.ServiceDesc for Answer service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) -var User_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "com.web.api.user.user", - HandlerType: (*UserServer)(nil), +var Answer_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "api.answer.Answer", + HandlerType: (*AnswerServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "list", - Handler: _User_List_Handler, + MethodName: "listCategory", + Handler: _Answer_ListCategory_Handler, + }, + { + MethodName: "listQuestionPage", + Handler: _Answer_ListQuestionPage_Handler, + }, + { + MethodName: "listAnswerOfTheDay", + Handler: _Answer_ListAnswerOfTheDay_Handler, + }, + { + MethodName: "userRightInfo", + Handler: _Answer_UserRightInfo_Handler, + }, + { + MethodName: "listHotTopUser", + Handler: _Answer_ListHotTopUser_Handler, + }, + { + MethodName: "searchQuestion", + Handler: _Answer_SearchQuestion_Handler, + }, + { + MethodName: "listFilterQuestion", + Handler: _Answer_ListFilterQuestion_Handler, + }, + { + MethodName: "listFilterUser", + Handler: _Answer_ListFilterUser_Handler, + }, + { + MethodName: "listRelatedQuestions", + Handler: _Answer_ListRelatedQuestions_Handler, + }, + { + MethodName: "questionDetailPage", + Handler: _Answer_QuestionDetailPage_Handler, + }, + { + MethodName: "userCenterProfilePage", + Handler: _Answer_UserCenterProfilePage_Handler, + }, + { + MethodName: "userCenterEditPage", + Handler: _Answer_UserCenterEditPage_Handler, + }, + { + MethodName: "userCenterEdit", + Handler: _Answer_UserCenterEdit_Handler, + }, + { + MethodName: "userCenterInBoxPage", + Handler: _Answer_UserCenterInBoxPage_Handler, + }, + { + MethodName: "deleteInbox", + Handler: _Answer_DeleteInbox_Handler, + }, + { + MethodName: "messageSend", + Handler: _Answer_MessageSend_Handler, + }, + { + MethodName: "messageDetailPage", + Handler: _Answer_MessageDetailPage_Handler, + }, + { + MethodName: "userCenterPointsPage", + Handler: _Answer_UserCenterPointsPage_Handler, + }, + { + MethodName: "userCenterNewAnswersPage", + Handler: _Answer_UserCenterNewAnswersPage_Handler, + }, + { + MethodName: "userCenterNewCommentsPage", + Handler: _Answer_UserCenterNewCommentsPage_Handler, + }, + { + MethodName: "noticesPage", + Handler: _Answer_NoticesPage_Handler, + }, + { + MethodName: "captcha", + Handler: _Answer_Captcha_Handler, + }, + { + MethodName: "forbiddenQuestion", + Handler: _Answer_ForbiddenQuestion_Handler, + }, + { + MethodName: "addQuestion", + Handler: _Answer_AddQuestion_Handler, + }, + { + MethodName: "getEditQuestion", + Handler: _Answer_GetEditQuestion_Handler, + }, + { + MethodName: "addAnswer", + Handler: _Answer_AddAnswer_Handler, + }, + { + MethodName: "editUserLogo", + Handler: _Answer_EditUserLogo_Handler, + }, + { + MethodName: "deleteNode", + Handler: _Answer_DeleteNode_Handler, + }, + { + MethodName: "report", + Handler: _Answer_Report_Handler, + }, + { + MethodName: "forwardQuestion", + Handler: _Answer_ForwardQuestion_Handler, + }, + { + MethodName: "voteNodeGood", + Handler: _Answer_VoteNodeGood_Handler, }, { MethodName: "login", - Handler: _User_Login_Handler, + Handler: _Answer_Login_Handler, + }, + { + MethodName: "adminRolesPage", + Handler: _Answer_AdminRolesPage_Handler, + }, + { + MethodName: "adminUpdateRoleAction", + Handler: _Answer_AdminUpdateRoleAction_Handler, + }, + { + MethodName: "adminUserPage", + Handler: _Answer_AdminUserPage_Handler, + }, + { + MethodName: "adminUpdateUserAction", + Handler: _Answer_AdminUpdateUserAction_Handler, + }, + { + MethodName: "adminNodePage", + Handler: _Answer_AdminNodePage_Handler, + }, + { + MethodName: "updateNode", + Handler: _Answer_UpdateNode_Handler, + }, + { + MethodName: "helpPage", + Handler: _Answer_HelpPage_Handler, + }, + { + MethodName: "randQuestion", + Handler: _Answer_RandQuestion_Handler, + }, + { + MethodName: "exchange", + Handler: _Answer_Exchange_Handler, + }, + { + MethodName: "adminExchange", + Handler: _Answer_AdminExchange_Handler, + }, + { + MethodName: "exchangeAction", + Handler: _Answer_ExchangeAction_Handler, + }, + { + MethodName: "adminPointsPage", + Handler: _Answer_AdminPointsPage_Handler, + }, + { + MethodName: "adminAddPointAction", + Handler: _Answer_AdminAddPointAction_Handler, + }, + { + MethodName: "redirect", + Handler: _Answer_Redirect_Handler, + }, + { + MethodName: "clearCheckTimeAction", + Handler: _Answer_ClearCheckTimeAction_Handler, + }, + { + MethodName: "adminSearchHelp", + Handler: _Answer_AdminSearchHelp_Handler, + }, + { + MethodName: "adminAddHelp", + Handler: _Answer_AdminAddHelp_Handler, + }, + { + MethodName: "adminGetHelp", + Handler: _Answer_AdminGetHelp_Handler, + }, + { + MethodName: "adminDeleteHelp", + Handler: _Answer_AdminDeleteHelp_Handler, + }, + { + MethodName: "adminSearchExchange", + Handler: _Answer_AdminSearchExchange_Handler, + }, + { + MethodName: "adminAddExchange", + Handler: _Answer_AdminAddExchange_Handler, }, { - MethodName: "delete", - Handler: _User_Delete_Handler, + MethodName: "adminDeleteExchange", + Handler: _Answer_AdminDeleteExchange_Handler, }, }, Streams: []grpc.StreamDesc{},