feat 协议

This commit is contained in:
2026-01-14 19:03:46 +08:00
parent 7aaa54403b
commit 7cb057fc91
3 changed files with 420 additions and 153 deletions

View File

@@ -122,8 +122,7 @@ type GetQuestionReq struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
QuestionSn string `protobuf:"bytes,1,opt,name=QuestionSn,json=question_sn,proto3" json:"QuestionSn,omitempty"` // 目唯一标识 CategorySn string `protobuf:"bytes,1,opt,name=CategorySn,json=category_sn,proto3" json:"CategorySn,omitempty"` // 目唯一标识
CategorySn string `protobuf:"bytes,2,opt,name=CategorySn,json=category_sn,proto3" json:"CategorySn,omitempty"` // 类目唯一标识
} }
func (x *GetQuestionReq) Reset() { func (x *GetQuestionReq) Reset() {
@@ -158,13 +157,6 @@ func (*GetQuestionReq) Descriptor() ([]byte, []int) {
return file_service_qgdzs_proto_rawDescGZIP(), []int{2} return file_service_qgdzs_proto_rawDescGZIP(), []int{2}
} }
func (x *GetQuestionReq) GetQuestionSn() string {
if x != nil {
return x.QuestionSn
}
return ""
}
func (x *GetQuestionReq) GetCategorySn() string { func (x *GetQuestionReq) GetCategorySn() string {
if x != nil { if x != nil {
return x.CategorySn return x.CategorySn
@@ -251,6 +243,133 @@ func (x *GetQuestionResp) GetDifficulty() int32 {
return 0 return 0
} }
// ---------- GetQuestionInfo ----------
type GetQuestionInfoReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
QuestionSn string `protobuf:"bytes,1,opt,name=QuestionSn,json=question_sn,proto3" json:"QuestionSn,omitempty"` // 题目唯一标识
}
func (x *GetQuestionInfoReq) Reset() {
*x = GetQuestionInfoReq{}
if protoimpl.UnsafeEnabled {
mi := &file_service_qgdzs_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetQuestionInfoReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetQuestionInfoReq) ProtoMessage() {}
func (x *GetQuestionInfoReq) ProtoReflect() protoreflect.Message {
mi := &file_service_qgdzs_proto_msgTypes[4]
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 GetQuestionInfoReq.ProtoReflect.Descriptor instead.
func (*GetQuestionInfoReq) Descriptor() ([]byte, []int) {
return file_service_qgdzs_proto_rawDescGZIP(), []int{4}
}
func (x *GetQuestionInfoReq) GetQuestionSn() string {
if x != nil {
return x.QuestionSn
}
return ""
}
type GetQuestionInfoResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Question string `protobuf:"bytes,1,opt,name=Question,json=question,proto3" json:"Question,omitempty"` // 题干
Options []string `protobuf:"bytes,2,rep,name=Options,json=options,proto3" json:"Options,omitempty"` // 选项
Category string `protobuf:"bytes,3,opt,name=Category,json=category,proto3" json:"Category,omitempty"` // 类目
Difficulty int32 `protobuf:"varint,4,opt,name=Difficulty,json=difficulty,proto3" json:"Difficulty,omitempty"` // 难度
Explanation string `protobuf:"bytes,5,opt,name=Explanation,json=explanation,proto3" json:"Explanation,omitempty"` // 解析
}
func (x *GetQuestionInfoResp) Reset() {
*x = GetQuestionInfoResp{}
if protoimpl.UnsafeEnabled {
mi := &file_service_qgdzs_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetQuestionInfoResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetQuestionInfoResp) ProtoMessage() {}
func (x *GetQuestionInfoResp) ProtoReflect() protoreflect.Message {
mi := &file_service_qgdzs_proto_msgTypes[5]
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 GetQuestionInfoResp.ProtoReflect.Descriptor instead.
func (*GetQuestionInfoResp) Descriptor() ([]byte, []int) {
return file_service_qgdzs_proto_rawDescGZIP(), []int{5}
}
func (x *GetQuestionInfoResp) GetQuestion() string {
if x != nil {
return x.Question
}
return ""
}
func (x *GetQuestionInfoResp) GetOptions() []string {
if x != nil {
return x.Options
}
return nil
}
func (x *GetQuestionInfoResp) GetCategory() string {
if x != nil {
return x.Category
}
return ""
}
func (x *GetQuestionInfoResp) GetDifficulty() int32 {
if x != nil {
return x.Difficulty
}
return 0
}
func (x *GetQuestionInfoResp) GetExplanation() string {
if x != nil {
return x.Explanation
}
return ""
}
// ---------- AnswerQuestion ---------- // ---------- AnswerQuestion ----------
type AnswerQuestionReq struct { type AnswerQuestionReq struct {
state protoimpl.MessageState state protoimpl.MessageState
@@ -265,7 +384,7 @@ type AnswerQuestionReq struct {
func (x *AnswerQuestionReq) Reset() { func (x *AnswerQuestionReq) Reset() {
*x = AnswerQuestionReq{} *x = AnswerQuestionReq{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_service_qgdzs_proto_msgTypes[4] mi := &file_service_qgdzs_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -278,7 +397,7 @@ func (x *AnswerQuestionReq) String() string {
func (*AnswerQuestionReq) ProtoMessage() {} func (*AnswerQuestionReq) ProtoMessage() {}
func (x *AnswerQuestionReq) ProtoReflect() protoreflect.Message { func (x *AnswerQuestionReq) ProtoReflect() protoreflect.Message {
mi := &file_service_qgdzs_proto_msgTypes[4] mi := &file_service_qgdzs_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -291,7 +410,7 @@ func (x *AnswerQuestionReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use AnswerQuestionReq.ProtoReflect.Descriptor instead. // Deprecated: Use AnswerQuestionReq.ProtoReflect.Descriptor instead.
func (*AnswerQuestionReq) Descriptor() ([]byte, []int) { func (*AnswerQuestionReq) Descriptor() ([]byte, []int) {
return file_service_qgdzs_proto_rawDescGZIP(), []int{4} return file_service_qgdzs_proto_rawDescGZIP(), []int{6}
} }
func (x *AnswerQuestionReq) GetUSN() string { func (x *AnswerQuestionReq) GetUSN() string {
@@ -327,7 +446,7 @@ type AnswerQuestionResp struct {
func (x *AnswerQuestionResp) Reset() { func (x *AnswerQuestionResp) Reset() {
*x = AnswerQuestionResp{} *x = AnswerQuestionResp{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_service_qgdzs_proto_msgTypes[5] mi := &file_service_qgdzs_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -340,7 +459,7 @@ func (x *AnswerQuestionResp) String() string {
func (*AnswerQuestionResp) ProtoMessage() {} func (*AnswerQuestionResp) ProtoMessage() {}
func (x *AnswerQuestionResp) ProtoReflect() protoreflect.Message { func (x *AnswerQuestionResp) ProtoReflect() protoreflect.Message {
mi := &file_service_qgdzs_proto_msgTypes[5] mi := &file_service_qgdzs_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -353,7 +472,7 @@ func (x *AnswerQuestionResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use AnswerQuestionResp.ProtoReflect.Descriptor instead. // Deprecated: Use AnswerQuestionResp.ProtoReflect.Descriptor instead.
func (*AnswerQuestionResp) Descriptor() ([]byte, []int) { func (*AnswerQuestionResp) Descriptor() ([]byte, []int) {
return file_service_qgdzs_proto_rawDescGZIP(), []int{5} return file_service_qgdzs_proto_rawDescGZIP(), []int{7}
} }
func (x *AnswerQuestionResp) GetAnswer() string { func (x *AnswerQuestionResp) GetAnswer() string {
@@ -380,7 +499,7 @@ type GetAllCategoryReq struct {
func (x *GetAllCategoryReq) Reset() { func (x *GetAllCategoryReq) Reset() {
*x = GetAllCategoryReq{} *x = GetAllCategoryReq{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_service_qgdzs_proto_msgTypes[6] mi := &file_service_qgdzs_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -393,7 +512,7 @@ func (x *GetAllCategoryReq) String() string {
func (*GetAllCategoryReq) ProtoMessage() {} func (*GetAllCategoryReq) ProtoMessage() {}
func (x *GetAllCategoryReq) ProtoReflect() protoreflect.Message { func (x *GetAllCategoryReq) ProtoReflect() protoreflect.Message {
mi := &file_service_qgdzs_proto_msgTypes[6] mi := &file_service_qgdzs_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -406,7 +525,7 @@ func (x *GetAllCategoryReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetAllCategoryReq.ProtoReflect.Descriptor instead. // Deprecated: Use GetAllCategoryReq.ProtoReflect.Descriptor instead.
func (*GetAllCategoryReq) Descriptor() ([]byte, []int) { func (*GetAllCategoryReq) Descriptor() ([]byte, []int) {
return file_service_qgdzs_proto_rawDescGZIP(), []int{6} return file_service_qgdzs_proto_rawDescGZIP(), []int{8}
} }
type GetAllCategoryResp struct { type GetAllCategoryResp struct {
@@ -420,7 +539,7 @@ type GetAllCategoryResp struct {
func (x *GetAllCategoryResp) Reset() { func (x *GetAllCategoryResp) Reset() {
*x = GetAllCategoryResp{} *x = GetAllCategoryResp{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_service_qgdzs_proto_msgTypes[7] mi := &file_service_qgdzs_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -433,7 +552,7 @@ func (x *GetAllCategoryResp) String() string {
func (*GetAllCategoryResp) ProtoMessage() {} func (*GetAllCategoryResp) ProtoMessage() {}
func (x *GetAllCategoryResp) ProtoReflect() protoreflect.Message { func (x *GetAllCategoryResp) ProtoReflect() protoreflect.Message {
mi := &file_service_qgdzs_proto_msgTypes[7] mi := &file_service_qgdzs_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -446,7 +565,7 @@ func (x *GetAllCategoryResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetAllCategoryResp.ProtoReflect.Descriptor instead. // Deprecated: Use GetAllCategoryResp.ProtoReflect.Descriptor instead.
func (*GetAllCategoryResp) Descriptor() ([]byte, []int) { func (*GetAllCategoryResp) Descriptor() ([]byte, []int) {
return file_service_qgdzs_proto_rawDescGZIP(), []int{7} return file_service_qgdzs_proto_rawDescGZIP(), []int{9}
} }
func (x *GetAllCategoryResp) GetCategories() []*GetAllCategoryItem { func (x *GetAllCategoryResp) GetCategories() []*GetAllCategoryItem {
@@ -468,7 +587,7 @@ type GetAllCategoryItem struct {
func (x *GetAllCategoryItem) Reset() { func (x *GetAllCategoryItem) Reset() {
*x = GetAllCategoryItem{} *x = GetAllCategoryItem{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_service_qgdzs_proto_msgTypes[8] mi := &file_service_qgdzs_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -481,7 +600,7 @@ func (x *GetAllCategoryItem) String() string {
func (*GetAllCategoryItem) ProtoMessage() {} func (*GetAllCategoryItem) ProtoMessage() {}
func (x *GetAllCategoryItem) ProtoReflect() protoreflect.Message { func (x *GetAllCategoryItem) ProtoReflect() protoreflect.Message {
mi := &file_service_qgdzs_proto_msgTypes[8] mi := &file_service_qgdzs_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -494,7 +613,7 @@ func (x *GetAllCategoryItem) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetAllCategoryItem.ProtoReflect.Descriptor instead. // Deprecated: Use GetAllCategoryItem.ProtoReflect.Descriptor instead.
func (*GetAllCategoryItem) Descriptor() ([]byte, []int) { func (*GetAllCategoryItem) Descriptor() ([]byte, []int) {
return file_service_qgdzs_proto_rawDescGZIP(), []int{8} return file_service_qgdzs_proto_rawDescGZIP(), []int{10}
} }
func (x *GetAllCategoryItem) GetSn() string { func (x *GetAllCategoryItem) GetSn() string {
@@ -525,7 +644,7 @@ type GetRecordReq struct {
func (x *GetRecordReq) Reset() { func (x *GetRecordReq) Reset() {
*x = GetRecordReq{} *x = GetRecordReq{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_service_qgdzs_proto_msgTypes[9] mi := &file_service_qgdzs_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -538,7 +657,7 @@ func (x *GetRecordReq) String() string {
func (*GetRecordReq) ProtoMessage() {} func (*GetRecordReq) ProtoMessage() {}
func (x *GetRecordReq) ProtoReflect() protoreflect.Message { func (x *GetRecordReq) ProtoReflect() protoreflect.Message {
mi := &file_service_qgdzs_proto_msgTypes[9] mi := &file_service_qgdzs_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -551,7 +670,7 @@ func (x *GetRecordReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetRecordReq.ProtoReflect.Descriptor instead. // Deprecated: Use GetRecordReq.ProtoReflect.Descriptor instead.
func (*GetRecordReq) Descriptor() ([]byte, []int) { func (*GetRecordReq) Descriptor() ([]byte, []int) {
return file_service_qgdzs_proto_rawDescGZIP(), []int{9} return file_service_qgdzs_proto_rawDescGZIP(), []int{11}
} }
func (x *GetRecordReq) GetUSN() string { func (x *GetRecordReq) GetUSN() string {
@@ -587,7 +706,7 @@ type GetRecordResp struct {
func (x *GetRecordResp) Reset() { func (x *GetRecordResp) Reset() {
*x = GetRecordResp{} *x = GetRecordResp{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_service_qgdzs_proto_msgTypes[10] mi := &file_service_qgdzs_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -600,7 +719,7 @@ func (x *GetRecordResp) String() string {
func (*GetRecordResp) ProtoMessage() {} func (*GetRecordResp) ProtoMessage() {}
func (x *GetRecordResp) ProtoReflect() protoreflect.Message { func (x *GetRecordResp) ProtoReflect() protoreflect.Message {
mi := &file_service_qgdzs_proto_msgTypes[10] mi := &file_service_qgdzs_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -613,7 +732,7 @@ func (x *GetRecordResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetRecordResp.ProtoReflect.Descriptor instead. // Deprecated: Use GetRecordResp.ProtoReflect.Descriptor instead.
func (*GetRecordResp) Descriptor() ([]byte, []int) { func (*GetRecordResp) Descriptor() ([]byte, []int) {
return file_service_qgdzs_proto_rawDescGZIP(), []int{10} return file_service_qgdzs_proto_rawDescGZIP(), []int{12}
} }
func (x *GetRecordResp) GetCount() int32 { func (x *GetRecordResp) GetCount() int32 {
@@ -647,7 +766,7 @@ type GetRecordItem struct {
func (x *GetRecordItem) Reset() { func (x *GetRecordItem) Reset() {
*x = GetRecordItem{} *x = GetRecordItem{}
if protoimpl.UnsafeEnabled { if protoimpl.UnsafeEnabled {
mi := &file_service_qgdzs_proto_msgTypes[11] mi := &file_service_qgdzs_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -660,7 +779,7 @@ func (x *GetRecordItem) String() string {
func (*GetRecordItem) ProtoMessage() {} func (*GetRecordItem) ProtoMessage() {}
func (x *GetRecordItem) ProtoReflect() protoreflect.Message { func (x *GetRecordItem) ProtoReflect() protoreflect.Message {
mi := &file_service_qgdzs_proto_msgTypes[11] mi := &file_service_qgdzs_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil { if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -673,7 +792,7 @@ func (x *GetRecordItem) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetRecordItem.ProtoReflect.Descriptor instead. // Deprecated: Use GetRecordItem.ProtoReflect.Descriptor instead.
func (*GetRecordItem) Descriptor() ([]byte, []int) { func (*GetRecordItem) Descriptor() ([]byte, []int) {
return file_service_qgdzs_proto_rawDescGZIP(), []int{11} return file_service_qgdzs_proto_rawDescGZIP(), []int{13}
} }
func (x *GetRecordItem) GetQuestionSn() string { func (x *GetRecordItem) GetQuestionSn() string {
@@ -738,100 +857,119 @@ var file_service_qgdzs_proto_rawDesc = []byte{
0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x6e, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x6e,
0x65, 0x72, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
0x70, 0x22, 0x52, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x22, 0x31, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x52, 0x65, 0x71, 0x12, 0x1f, 0x0a, 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x53,
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72,
0x6e, 0x5f, 0x73, 0x6e, 0x12, 0x1f, 0x0a, 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x79, 0x5f, 0x73, 0x6e, 0x22, 0x93, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73,
0x53, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x53, 0x6e, 0x18, 0x01,
0x72, 0x79, 0x5f, 0x73, 0x6e, 0x22, 0x93, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x73, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x51, 0x75, 0x65, 0x73,
0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x53, 0x6e, 0x18, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x73, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x51, 0x75, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a,
0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x69,
0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x22, 0x35, 0x0a, 0x12, 0x47, 0x65,
0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71,
0x12, 0x1f, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6e, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73,
0x6e, 0x22, 0xa9, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f,
0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x51, 0x75, 0x65,
0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65,
0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
0x1a, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x44,
0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x22, 0x4d, 0x0a, 0x11, 0x41, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x45,
0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x12, 0x10, 0x0a, 0x03, 0x55, 0x53, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4d, 0x0a,
0x73, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x53, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x11, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x73, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x53, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0x4e, 0x0a, 0x12, 0x41, 0x6e, 0x03, 0x75, 0x73, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x53, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x02, 0x73, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x03,
0x12, 0x16, 0x0a, 0x06, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0x4e, 0x0a, 0x12,
0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x6c, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x13, 0x0a, 0x11, 0x47, 0x65, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78,
0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x22, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x49, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x0b, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x13, 0x0a, 0x11,
0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65,
0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x71, 0x22, 0x49, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67,
0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x43, 0x61, 0x74, 0x65, 0x67,
0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x12, 0x47, 0x65, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x47, 0x65,
0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x74, 0x65, 0x6d,
0x12, 0x0e, 0x0a, 0x02, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x73, 0x6e, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x12,
0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x74,
0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0x51, 0x0a, 0x0c, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x02,
0x55, 0x53, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x73, 0x6e, 0x12, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0x51,
0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10,
0x67, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x0a, 0x03, 0x55, 0x53, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x73, 0x6e,
0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
0x4f, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x50, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65,
0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a,
0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x22, 0x4f, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65,
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x6f,
0x22, 0xea, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x47, 0x65, 0x74, 0x52,
0x65, 0x6d, 0x12, 0x1f, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6e, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xea, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
0x5f, 0x73, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1f, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69,
0x1e, 0x0a, 0x0a, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x03, 0x20, 0x6f, 0x6e, 0x5f, 0x73, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f,
0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f,
0x1a, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18,
0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0e, 0x51, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74,
0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x05, 0x20, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x27, 0x0a,
0x73, 0x77, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x06, 0x0e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0a, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72,
0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x32, 0xdf, 0x03, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x1f,
0x0a, 0x05, 0x51, 0x67, 0x64, 0x7a, 0x73, 0x12, 0x69, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01,
0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x2e, 0x47, 0x65, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x32,
0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0xc7, 0x04, 0x0a, 0x05, 0x51, 0x67, 0x64, 0x7a, 0x73, 0x12, 0x69, 0x0a, 0x10, 0x47, 0x65, 0x6e,
0x71, 0x1a, 0x15, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x65, 0x72, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x2e,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e,
0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f, 0x71, 0x67, 0x64, 0x7a, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x51, 0x75,
0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93,
0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f, 0x71, 0x67, 0x64, 0x7a, 0x73, 0x2f, 0x61, 0x75,
0x6e, 0x12, 0x0f, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x74, 0x68, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x73,
0x65, 0x71, 0x1a, 0x10, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74,
0x52, 0x65, 0x73, 0x70, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01, 0x2a, 0x22, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f,
0x18, 0x2f, 0x71, 0x67, 0x64, 0x7a, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x2f, 0x67, 0x65, 0x74, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69,
0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x61, 0x0a, 0x0e, 0x41, 0x6e, 0x73, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x01,
0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x2e, 0x41, 0x6e, 0x2a, 0x22, 0x18, 0x2f, 0x71, 0x67, 0x64, 0x7a, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x2f, 0x67,
0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x0f, 0x47,
0x13, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x13,
0x52, 0x65, 0x73, 0x70, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
0x1b, 0x2f, 0x71, 0x67, 0x64, 0x7a, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x2f, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f,
0x77, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x0e, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02,
0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f, 0x71, 0x67, 0x64, 0x7a, 0x73, 0x2f, 0x6f, 0x70, 0x65,
0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x6e, 0x2f, 0x67, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
0x65, 0x71, 0x1a, 0x13, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6e, 0x66, 0x6f, 0x12, 0x61, 0x0a, 0x0e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75, 0x65,
0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x51, 0x75,
0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x71, 0x67, 0x64, 0x7a, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x2f, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x41, 0x6e, 0x73, 0x77,
0x67, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x65, 0x72, 0x51, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x26,
0x12, 0x4d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0d, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x71, 0x67, 0x64, 0x7a,
0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x47, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x2f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x71, 0x75,
0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x21, 0x82, 0xd3, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c,
0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x71, 0x67, 0x64, 0x7a, 0x73, 0x2f, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c,
0x61, 0x75, 0x74, 0x68, 0x2f, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x47,
0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x2e, 0x68, 0x6c, 0x73, 0x71, 0x2e, 0x61, 0x73, 0x69, 0x61, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73,
0x2f, 0x6d, 0x6d, 0x6f, 0x72, 0x70, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x70, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x71,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x73, 0x2f, 0x67, 0x64, 0x7a, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x2f, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x6c,
0x67, 0x72, 0x70, 0x63, 0x5f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x6c, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x4d, 0x0a, 0x09, 0x47, 0x65,
0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0d, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63,
0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f,
0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01,
0x2a, 0x22, 0x16, 0x2f, 0x71, 0x67, 0x64, 0x7a, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x67,
0x65, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74,
0x2e, 0x68, 0x6c, 0x73, 0x71, 0x2e, 0x61, 0x73, 0x69, 0x61, 0x2f, 0x6d, 0x6d, 0x6f, 0x72, 0x70,
0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x70,
0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@@ -846,36 +984,40 @@ func file_service_qgdzs_proto_rawDescGZIP() []byte {
return file_service_qgdzs_proto_rawDescData return file_service_qgdzs_proto_rawDescData
} }
var file_service_qgdzs_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_service_qgdzs_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_service_qgdzs_proto_goTypes = []interface{}{ var file_service_qgdzs_proto_goTypes = []interface{}{
(*GenerateQuestionReq)(nil), // 0: GenerateQuestionReq (*GenerateQuestionReq)(nil), // 0: GenerateQuestionReq
(*GenerateQuestionResp)(nil), // 1: GenerateQuestionResp (*GenerateQuestionResp)(nil), // 1: GenerateQuestionResp
(*GetQuestionReq)(nil), // 2: GetQuestionReq (*GetQuestionReq)(nil), // 2: GetQuestionReq
(*GetQuestionResp)(nil), // 3: GetQuestionResp (*GetQuestionResp)(nil), // 3: GetQuestionResp
(*AnswerQuestionReq)(nil), // 4: AnswerQuestionReq (*GetQuestionInfoReq)(nil), // 4: GetQuestionInfoReq
(*AnswerQuestionResp)(nil), // 5: AnswerQuestionResp (*GetQuestionInfoResp)(nil), // 5: GetQuestionInfoResp
(*GetAllCategoryReq)(nil), // 6: GetAllCategoryReq (*AnswerQuestionReq)(nil), // 6: AnswerQuestionReq
(*GetAllCategoryResp)(nil), // 7: GetAllCategoryResp (*AnswerQuestionResp)(nil), // 7: AnswerQuestionResp
(*GetAllCategoryItem)(nil), // 8: GetAllCategoryItem (*GetAllCategoryReq)(nil), // 8: GetAllCategoryReq
(*GetRecordReq)(nil), // 9: GetRecordReq (*GetAllCategoryResp)(nil), // 9: GetAllCategoryResp
(*GetRecordResp)(nil), // 10: GetRecordResp (*GetAllCategoryItem)(nil), // 10: GetAllCategoryItem
(*GetRecordItem)(nil), // 11: GetRecordItem (*GetRecordReq)(nil), // 11: GetRecordReq
(*GetRecordResp)(nil), // 12: GetRecordResp
(*GetRecordItem)(nil), // 13: GetRecordItem
} }
var file_service_qgdzs_proto_depIdxs = []int32{ var file_service_qgdzs_proto_depIdxs = []int32{
8, // 0: GetAllCategoryResp.Categories:type_name -> GetAllCategoryItem 10, // 0: GetAllCategoryResp.Categories:type_name -> GetAllCategoryItem
11, // 1: GetRecordResp.Records:type_name -> GetRecordItem 13, // 1: GetRecordResp.Records:type_name -> GetRecordItem
0, // 2: Qgdzs.GenerateQuestion:input_type -> GenerateQuestionReq 0, // 2: Qgdzs.GenerateQuestion:input_type -> GenerateQuestionReq
2, // 3: Qgdzs.GetQuestion:input_type -> GetQuestionReq 2, // 3: Qgdzs.GetQuestion:input_type -> GetQuestionReq
4, // 4: Qgdzs.AnswerQuestion:input_type -> AnswerQuestionReq 4, // 4: Qgdzs.GetQuestionInfo:input_type -> GetQuestionInfoReq
6, // 5: Qgdzs.GetAllCategory:input_type -> GetAllCategoryReq 6, // 5: Qgdzs.AnswerQuestion:input_type -> AnswerQuestionReq
9, // 6: Qgdzs.GetRecord:input_type -> GetRecordReq 8, // 6: Qgdzs.GetAllCategory:input_type -> GetAllCategoryReq
1, // 7: Qgdzs.GenerateQuestion:output_type -> GenerateQuestionResp 11, // 7: Qgdzs.GetRecord:input_type -> GetRecordReq
3, // 8: Qgdzs.GetQuestion:output_type -> GetQuestionResp 1, // 8: Qgdzs.GenerateQuestion:output_type -> GenerateQuestionResp
5, // 9: Qgdzs.AnswerQuestion:output_type -> AnswerQuestionResp 3, // 9: Qgdzs.GetQuestion:output_type -> GetQuestionResp
7, // 10: Qgdzs.GetAllCategory:output_type -> GetAllCategoryResp 5, // 10: Qgdzs.GetQuestionInfo:output_type -> GetQuestionInfoResp
10, // 11: Qgdzs.GetRecord:output_type -> GetRecordResp 7, // 11: Qgdzs.AnswerQuestion:output_type -> AnswerQuestionResp
7, // [7:12] is the sub-list for method output_type 9, // 12: Qgdzs.GetAllCategory:output_type -> GetAllCategoryResp
2, // [2:7] is the sub-list for method input_type 12, // 13: Qgdzs.GetRecord:output_type -> GetRecordResp
8, // [8:14] is the sub-list for method output_type
2, // [2:8] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name 2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee 2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name 0, // [0:2] is the sub-list for field type_name
@@ -936,7 +1078,7 @@ func file_service_qgdzs_proto_init() {
} }
} }
file_service_qgdzs_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { file_service_qgdzs_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AnswerQuestionReq); i { switch v := v.(*GetQuestionInfoReq); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@@ -948,7 +1090,7 @@ func file_service_qgdzs_proto_init() {
} }
} }
file_service_qgdzs_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { file_service_qgdzs_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AnswerQuestionResp); i { switch v := v.(*GetQuestionInfoResp); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@@ -960,7 +1102,7 @@ func file_service_qgdzs_proto_init() {
} }
} }
file_service_qgdzs_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { file_service_qgdzs_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetAllCategoryReq); i { switch v := v.(*AnswerQuestionReq); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@@ -972,7 +1114,7 @@ func file_service_qgdzs_proto_init() {
} }
} }
file_service_qgdzs_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { file_service_qgdzs_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetAllCategoryResp); i { switch v := v.(*AnswerQuestionResp); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@@ -984,7 +1126,7 @@ func file_service_qgdzs_proto_init() {
} }
} }
file_service_qgdzs_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { file_service_qgdzs_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetAllCategoryItem); i { switch v := v.(*GetAllCategoryReq); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@@ -996,7 +1138,7 @@ func file_service_qgdzs_proto_init() {
} }
} }
file_service_qgdzs_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { file_service_qgdzs_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetRecordReq); i { switch v := v.(*GetAllCategoryResp); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@@ -1008,7 +1150,7 @@ func file_service_qgdzs_proto_init() {
} }
} }
file_service_qgdzs_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { file_service_qgdzs_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetRecordResp); i { switch v := v.(*GetAllCategoryItem); i {
case 0: case 0:
return &v.state return &v.state
case 1: case 1:
@@ -1020,6 +1162,30 @@ func file_service_qgdzs_proto_init() {
} }
} }
file_service_qgdzs_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { file_service_qgdzs_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetRecordReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_service_qgdzs_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetRecordResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_service_qgdzs_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetRecordItem); i { switch v := v.(*GetRecordItem); i {
case 0: case 0:
return &v.state return &v.state
@@ -1038,7 +1204,7 @@ func file_service_qgdzs_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_service_qgdzs_proto_rawDesc, RawDescriptor: file_service_qgdzs_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 12, NumMessages: 14,
NumExtensions: 0, NumExtensions: 0,
NumServices: 1, NumServices: 1,
}, },

View File

@@ -83,6 +83,30 @@ func local_request_Qgdzs_GetQuestion_0(ctx context.Context, marshaler runtime.Ma
return msg, metadata, err return msg, metadata, err
} }
func request_Qgdzs_GetQuestionInfo_0(ctx context.Context, marshaler runtime.Marshaler, client QgdzsClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq GetQuestionInfoReq
metadata runtime.ServerMetadata
)
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.GetQuestionInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_Qgdzs_GetQuestionInfo_0(ctx context.Context, marshaler runtime.Marshaler, server QgdzsServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var (
protoReq GetQuestionInfoReq
metadata runtime.ServerMetadata
)
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.GetQuestionInfo(ctx, &protoReq)
return msg, metadata, err
}
func request_Qgdzs_AnswerQuestion_0(ctx context.Context, marshaler runtime.Marshaler, client QgdzsClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { func request_Qgdzs_AnswerQuestion_0(ctx context.Context, marshaler runtime.Marshaler, client QgdzsClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var ( var (
protoReq AnswerQuestionReq protoReq AnswerQuestionReq
@@ -201,6 +225,26 @@ func RegisterQgdzsHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
} }
forward_Qgdzs_GetQuestion_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) forward_Qgdzs_GetQuestion_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
}) })
mux.Handle(http.MethodPost, pattern_Qgdzs_GetQuestionInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
var stream runtime.ServerTransportStream
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/.Qgdzs/GetQuestionInfo", runtime.WithHTTPPathPattern("/qgdzs/open/get_question_info"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_Qgdzs_GetQuestionInfo_0(annotatedContext, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
if err != nil {
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
forward_Qgdzs_GetQuestionInfo_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle(http.MethodPost, pattern_Qgdzs_AnswerQuestion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle(http.MethodPost, pattern_Qgdzs_AnswerQuestion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
@@ -335,6 +379,23 @@ func RegisterQgdzsHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
} }
forward_Qgdzs_GetQuestion_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) forward_Qgdzs_GetQuestion_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
}) })
mux.Handle(http.MethodPost, pattern_Qgdzs_GetQuestionInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/.Qgdzs/GetQuestionInfo", runtime.WithHTTPPathPattern("/qgdzs/open/get_question_info"))
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_Qgdzs_GetQuestionInfo_0(annotatedContext, inboundMarshaler, client, req, pathParams)
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
if err != nil {
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
return
}
forward_Qgdzs_GetQuestionInfo_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle(http.MethodPost, pattern_Qgdzs_AnswerQuestion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle(http.MethodPost, pattern_Qgdzs_AnswerQuestion_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
@@ -392,6 +453,7 @@ func RegisterQgdzsHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie
var ( var (
pattern_Qgdzs_GenerateQuestion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgdzs", "auth", "generate_question"}, "")) pattern_Qgdzs_GenerateQuestion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgdzs", "auth", "generate_question"}, ""))
pattern_Qgdzs_GetQuestion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgdzs", "open", "get_question"}, "")) pattern_Qgdzs_GetQuestion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgdzs", "open", "get_question"}, ""))
pattern_Qgdzs_GetQuestionInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgdzs", "open", "get_question_info"}, ""))
pattern_Qgdzs_AnswerQuestion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgdzs", "open", "answer_question"}, "")) pattern_Qgdzs_AnswerQuestion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgdzs", "open", "answer_question"}, ""))
pattern_Qgdzs_GetAllCategory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgdzs", "open", "get_all_category"}, "")) pattern_Qgdzs_GetAllCategory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgdzs", "open", "get_all_category"}, ""))
pattern_Qgdzs_GetRecord_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgdzs", "auth", "get_record"}, "")) pattern_Qgdzs_GetRecord_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"qgdzs", "auth", "get_record"}, ""))
@@ -400,6 +462,7 @@ var (
var ( var (
forward_Qgdzs_GenerateQuestion_0 = runtime.ForwardResponseMessage forward_Qgdzs_GenerateQuestion_0 = runtime.ForwardResponseMessage
forward_Qgdzs_GetQuestion_0 = runtime.ForwardResponseMessage forward_Qgdzs_GetQuestion_0 = runtime.ForwardResponseMessage
forward_Qgdzs_GetQuestionInfo_0 = runtime.ForwardResponseMessage
forward_Qgdzs_AnswerQuestion_0 = runtime.ForwardResponseMessage forward_Qgdzs_AnswerQuestion_0 = runtime.ForwardResponseMessage
forward_Qgdzs_GetAllCategory_0 = runtime.ForwardResponseMessage forward_Qgdzs_GetAllCategory_0 = runtime.ForwardResponseMessage
forward_Qgdzs_GetRecord_0 = runtime.ForwardResponseMessage forward_Qgdzs_GetRecord_0 = runtime.ForwardResponseMessage

View File

@@ -26,6 +26,8 @@ type QgdzsClient interface {
GenerateQuestion(ctx context.Context, in *GenerateQuestionReq, opts ...grpc.CallOption) (*GenerateQuestionResp, error) GenerateQuestion(ctx context.Context, in *GenerateQuestionReq, opts ...grpc.CallOption) (*GenerateQuestionResp, error)
// 获取题目 // 获取题目
GetQuestion(ctx context.Context, in *GetQuestionReq, opts ...grpc.CallOption) (*GetQuestionResp, error) GetQuestion(ctx context.Context, in *GetQuestionReq, opts ...grpc.CallOption) (*GetQuestionResp, error)
// 获取具体的题目
GetQuestionInfo(ctx context.Context, in *GetQuestionInfoReq, opts ...grpc.CallOption) (*GetQuestionInfoResp, error)
// 回答题目 // 回答题目
AnswerQuestion(ctx context.Context, in *AnswerQuestionReq, opts ...grpc.CallOption) (*AnswerQuestionResp, error) AnswerQuestion(ctx context.Context, in *AnswerQuestionReq, opts ...grpc.CallOption) (*AnswerQuestionResp, error)
// 获取所有类目 // 获取所有类目
@@ -60,6 +62,15 @@ func (c *qgdzsClient) GetQuestion(ctx context.Context, in *GetQuestionReq, opts
return out, nil return out, nil
} }
func (c *qgdzsClient) GetQuestionInfo(ctx context.Context, in *GetQuestionInfoReq, opts ...grpc.CallOption) (*GetQuestionInfoResp, error) {
out := new(GetQuestionInfoResp)
err := c.cc.Invoke(ctx, "/Qgdzs/GetQuestionInfo", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *qgdzsClient) AnswerQuestion(ctx context.Context, in *AnswerQuestionReq, opts ...grpc.CallOption) (*AnswerQuestionResp, error) { func (c *qgdzsClient) AnswerQuestion(ctx context.Context, in *AnswerQuestionReq, opts ...grpc.CallOption) (*AnswerQuestionResp, error) {
out := new(AnswerQuestionResp) out := new(AnswerQuestionResp)
err := c.cc.Invoke(ctx, "/Qgdzs/AnswerQuestion", in, out, opts...) err := c.cc.Invoke(ctx, "/Qgdzs/AnswerQuestion", in, out, opts...)
@@ -95,6 +106,8 @@ type QgdzsServer interface {
GenerateQuestion(context.Context, *GenerateQuestionReq) (*GenerateQuestionResp, error) GenerateQuestion(context.Context, *GenerateQuestionReq) (*GenerateQuestionResp, error)
// 获取题目 // 获取题目
GetQuestion(context.Context, *GetQuestionReq) (*GetQuestionResp, error) GetQuestion(context.Context, *GetQuestionReq) (*GetQuestionResp, error)
// 获取具体的题目
GetQuestionInfo(context.Context, *GetQuestionInfoReq) (*GetQuestionInfoResp, error)
// 回答题目 // 回答题目
AnswerQuestion(context.Context, *AnswerQuestionReq) (*AnswerQuestionResp, error) AnswerQuestion(context.Context, *AnswerQuestionReq) (*AnswerQuestionResp, error)
// 获取所有类目 // 获取所有类目
@@ -114,6 +127,9 @@ func (UnimplementedQgdzsServer) GenerateQuestion(context.Context, *GenerateQuest
func (UnimplementedQgdzsServer) GetQuestion(context.Context, *GetQuestionReq) (*GetQuestionResp, error) { func (UnimplementedQgdzsServer) GetQuestion(context.Context, *GetQuestionReq) (*GetQuestionResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetQuestion not implemented") return nil, status.Errorf(codes.Unimplemented, "method GetQuestion not implemented")
} }
func (UnimplementedQgdzsServer) GetQuestionInfo(context.Context, *GetQuestionInfoReq) (*GetQuestionInfoResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetQuestionInfo not implemented")
}
func (UnimplementedQgdzsServer) AnswerQuestion(context.Context, *AnswerQuestionReq) (*AnswerQuestionResp, error) { func (UnimplementedQgdzsServer) AnswerQuestion(context.Context, *AnswerQuestionReq) (*AnswerQuestionResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method AnswerQuestion not implemented") return nil, status.Errorf(codes.Unimplemented, "method AnswerQuestion not implemented")
} }
@@ -172,6 +188,24 @@ func _Qgdzs_GetQuestion_Handler(srv interface{}, ctx context.Context, dec func(i
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _Qgdzs_GetQuestionInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetQuestionInfoReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(QgdzsServer).GetQuestionInfo(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/Qgdzs/GetQuestionInfo",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(QgdzsServer).GetQuestionInfo(ctx, req.(*GetQuestionInfoReq))
}
return interceptor(ctx, in, info, handler)
}
func _Qgdzs_AnswerQuestion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _Qgdzs_AnswerQuestion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(AnswerQuestionReq) in := new(AnswerQuestionReq)
if err := dec(in); err != nil { if err := dec(in); err != nil {
@@ -241,6 +275,10 @@ var Qgdzs_ServiceDesc = grpc.ServiceDesc{
MethodName: "GetQuestion", MethodName: "GetQuestion",
Handler: _Qgdzs_GetQuestion_Handler, Handler: _Qgdzs_GetQuestion_Handler,
}, },
{
MethodName: "GetQuestionInfo",
Handler: _Qgdzs_GetQuestionInfo_Handler,
},
{ {
MethodName: "AnswerQuestion", MethodName: "AnswerQuestion",
Handler: _Qgdzs_AnswerQuestion_Handler, Handler: _Qgdzs_AnswerQuestion_Handler,