文档分类

dev
truthhun 1 year ago
parent 279d64df4d
commit 50c8a56f38

@ -477,6 +477,58 @@ func (m *GetDocumentRequest) GetWithAuthor() bool {
return false
}
type SetDocumentsCategoryRequest struct {
DocumentId []int64 `protobuf:"varint,1,rep,packed,name=document_id,json=documentId,proto3" json:"document_id,omitempty"`
CategoryId []int64 `protobuf:"varint,2,rep,packed,name=category_id,json=categoryId,proto3" json:"category_id,omitempty"`
}
func (m *SetDocumentsCategoryRequest) Reset() { *m = SetDocumentsCategoryRequest{} }
func (m *SetDocumentsCategoryRequest) String() string { return proto.CompactTextString(m) }
func (*SetDocumentsCategoryRequest) ProtoMessage() {}
func (*SetDocumentsCategoryRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{4}
}
func (m *SetDocumentsCategoryRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *SetDocumentsCategoryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_SetDocumentsCategoryRequest.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *SetDocumentsCategoryRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_SetDocumentsCategoryRequest.Merge(m, src)
}
func (m *SetDocumentsCategoryRequest) XXX_Size() int {
return m.Size()
}
func (m *SetDocumentsCategoryRequest) XXX_DiscardUnknown() {
xxx_messageInfo_SetDocumentsCategoryRequest.DiscardUnknown(m)
}
var xxx_messageInfo_SetDocumentsCategoryRequest proto.InternalMessageInfo
func (m *SetDocumentsCategoryRequest) GetDocumentId() []int64 {
if m != nil {
return m.DocumentId
}
return nil
}
func (m *SetDocumentsCategoryRequest) GetCategoryId() []int64 {
if m != nil {
return m.CategoryId
}
return nil
}
// 文档列表
type ListDocumentRequest struct {
Page int64 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"`
@ -496,7 +548,7 @@ func (m *ListDocumentRequest) Reset() { *m = ListDocumentRequest{} }
func (m *ListDocumentRequest) String() string { return proto.CompactTextString(m) }
func (*ListDocumentRequest) ProtoMessage() {}
func (*ListDocumentRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{4}
return fileDescriptor_55a584ae3a7fc022, []int{5}
}
func (m *ListDocumentRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -612,7 +664,7 @@ func (m *ListDocumentReply) Reset() { *m = ListDocumentReply{} }
func (m *ListDocumentReply) String() string { return proto.CompactTextString(m) }
func (*ListDocumentReply) ProtoMessage() {}
func (*ListDocumentReply) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{5}
return fileDescriptor_55a584ae3a7fc022, []int{6}
}
func (m *ListDocumentReply) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -666,7 +718,7 @@ func (m *CreateDocumentItem) Reset() { *m = CreateDocumentItem{} }
func (m *CreateDocumentItem) String() string { return proto.CompactTextString(m) }
func (*CreateDocumentItem) ProtoMessage() {}
func (*CreateDocumentItem) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{6}
return fileDescriptor_55a584ae3a7fc022, []int{7}
}
func (m *CreateDocumentItem) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -727,7 +779,7 @@ func (m *CreateDocumentRequest) Reset() { *m = CreateDocumentRequest{} }
func (m *CreateDocumentRequest) String() string { return proto.CompactTextString(m) }
func (*CreateDocumentRequest) ProtoMessage() {}
func (*CreateDocumentRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{7}
return fileDescriptor_55a584ae3a7fc022, []int{8}
}
func (m *CreateDocumentRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -787,7 +839,7 @@ func (m *SetDocumentRecommendRequest) Reset() { *m = SetDocumentRecommen
func (m *SetDocumentRecommendRequest) String() string { return proto.CompactTextString(m) }
func (*SetDocumentRecommendRequest) ProtoMessage() {}
func (*SetDocumentRecommendRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{8}
return fileDescriptor_55a584ae3a7fc022, []int{9}
}
func (m *SetDocumentRecommendRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -839,7 +891,7 @@ func (m *ListDocumentForHomeRequest) Reset() { *m = ListDocumentForHomeR
func (m *ListDocumentForHomeRequest) String() string { return proto.CompactTextString(m) }
func (*ListDocumentForHomeRequest) ProtoMessage() {}
func (*ListDocumentForHomeRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{9}
return fileDescriptor_55a584ae3a7fc022, []int{10}
}
func (m *ListDocumentForHomeRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -887,7 +939,7 @@ func (m *ListDocumentForHomeItem) Reset() { *m = ListDocumentForHomeItem
func (m *ListDocumentForHomeItem) String() string { return proto.CompactTextString(m) }
func (*ListDocumentForHomeItem) ProtoMessage() {}
func (*ListDocumentForHomeItem) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{10}
return fileDescriptor_55a584ae3a7fc022, []int{11}
}
func (m *ListDocumentForHomeItem) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -953,7 +1005,7 @@ func (m *ListDocumentForHomeResponse) Reset() { *m = ListDocumentForHome
func (m *ListDocumentForHomeResponse) String() string { return proto.CompactTextString(m) }
func (*ListDocumentForHomeResponse) ProtoMessage() {}
func (*ListDocumentForHomeResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{11}
return fileDescriptor_55a584ae3a7fc022, []int{12}
}
func (m *ListDocumentForHomeResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1003,7 +1055,7 @@ func (m *SearchDocumentRequest) Reset() { *m = SearchDocumentRequest{} }
func (m *SearchDocumentRequest) String() string { return proto.CompactTextString(m) }
func (*SearchDocumentRequest) ProtoMessage() {}
func (*SearchDocumentRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{12}
return fileDescriptor_55a584ae3a7fc022, []int{13}
}
func (m *SearchDocumentRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1088,7 +1140,7 @@ func (m *DocumentScore) Reset() { *m = DocumentScore{} }
func (m *DocumentScore) String() string { return proto.CompactTextString(m) }
func (*DocumentScore) ProtoMessage() {}
func (*DocumentScore) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{13}
return fileDescriptor_55a584ae3a7fc022, []int{14}
}
func (m *DocumentScore) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1170,7 +1222,7 @@ func (m *SearchDocumentReply) Reset() { *m = SearchDocumentReply{} }
func (m *SearchDocumentReply) String() string { return proto.CompactTextString(m) }
func (*SearchDocumentReply) ProtoMessage() {}
func (*SearchDocumentReply) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{14}
return fileDescriptor_55a584ae3a7fc022, []int{15}
}
func (m *SearchDocumentReply) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1229,7 +1281,7 @@ func (m *DownloadDocumentReply) Reset() { *m = DownloadDocumentReply{} }
func (m *DownloadDocumentReply) String() string { return proto.CompactTextString(m) }
func (*DownloadDocumentReply) ProtoMessage() {}
func (*DownloadDocumentReply) Descriptor() ([]byte, []int) {
return fileDescriptor_55a584ae3a7fc022, []int{15}
return fileDescriptor_55a584ae3a7fc022, []int{16}
}
func (m *DownloadDocumentReply) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@ -1270,6 +1322,7 @@ func init() {
proto.RegisterType((*DeleteDocumentRequest)(nil), "api.v1.DeleteDocumentRequest")
proto.RegisterType((*RecoverRecycleDocumentRequest)(nil), "api.v1.RecoverRecycleDocumentRequest")
proto.RegisterType((*GetDocumentRequest)(nil), "api.v1.GetDocumentRequest")
proto.RegisterType((*SetDocumentsCategoryRequest)(nil), "api.v1.SetDocumentsCategoryRequest")
proto.RegisterType((*ListDocumentRequest)(nil), "api.v1.ListDocumentRequest")
proto.RegisterType((*ListDocumentReply)(nil), "api.v1.ListDocumentReply")
proto.RegisterType((*CreateDocumentItem)(nil), "api.v1.CreateDocumentItem")
@ -1287,110 +1340,113 @@ func init() {
func init() { proto.RegisterFile("api/v1/document.proto", fileDescriptor_55a584ae3a7fc022) }
var fileDescriptor_55a584ae3a7fc022 = []byte{
// 1642 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xc1, 0x6e, 0xdb, 0xcc,
0x11, 0x0e, 0x45, 0xc9, 0x96, 0x47, 0xb2, 0x22, 0xaf, 0x2d, 0x9b, 0xa6, 0x6c, 0x49, 0xa1, 0xeb,
0x56, 0xbf, 0x51, 0x58, 0x88, 0x8b, 0xf6, 0xd0, 0xff, 0x50, 0xf8, 0x77, 0x52, 0xd7, 0x40, 0x51,
0xfc, 0x60, 0x1a, 0x04, 0xc8, 0xc5, 0x65, 0xc4, 0xb5, 0xc4, 0x96, 0x12, 0x59, 0x72, 0x65, 0xd5,
0x46, 0x7b, 0xe9, 0x03, 0x14, 0x01, 0x0a, 0xe4, 0x49, 0xfa, 0x10, 0x3d, 0x06, 0xe8, 0xa5, 0x45,
0x0f, 0x0d, 0x92, 0xbe, 0x40, 0xdf, 0xa0, 0xd8, 0xd9, 0x5d, 0x89, 0x12, 0x49, 0xdb, 0xc9, 0x7f,
0xe3, 0xce, 0xce, 0x7e, 0xdf, 0xce, 0xec, 0xcc, 0xb7, 0x2b, 0x41, 0xc3, 0x09, 0xbd, 0xde, 0xf5,
0xd3, 0x9e, 0x1b, 0xf4, 0x27, 0x23, 0x3a, 0x66, 0xc7, 0x61, 0x14, 0xb0, 0x80, 0xac, 0x38, 0xa1,
0x77, 0x7c, 0xfd, 0xd4, 0x6c, 0x0f, 0x82, 0x60, 0xe0, 0xd3, 0x1e, 0x5a, 0xdf, 0x4c, 0xae, 0x7a,
0xcc, 0x1b, 0xd1, 0x98, 0x39, 0xa3, 0x50, 0x38, 0x9a, 0x5b, 0x83, 0x60, 0x10, 0xe0, 0x67, 0x8f,
0x7f, 0x49, 0xeb, 0x9e, 0x5c, 0xc6, 0xc1, 0x9d, 0xf1, 0x38, 0x60, 0x0e, 0xf3, 0x82, 0x71, 0x2c,
0x67, 0x9b, 0xcb, 0xa0, 0x74, 0x14, 0xb2, 0x1b, 0x39, 0xb9, 0x23, 0x37, 0xe4, 0x30, 0xe6, 0xf4,
0x87, 0xf3, 0x2d, 0x99, 0x1b, 0x72, 0x62, 0x12, 0xd3, 0x48, 0x98, 0xac, 0x0f, 0x65, 0x28, 0x3f,
0x93, 0x1b, 0x27, 0x35, 0x28, 0x78, 0xae, 0xa1, 0x75, 0xb4, 0xae, 0x6e, 0x17, 0x3c, 0x97, 0x6c,
0x41, 0x89, 0x79, 0xcc, 0xa7, 0x46, 0xa1, 0xa3, 0x75, 0xd7, 0x6c, 0x31, 0x20, 0x26, 0x94, 0x7f,
0x47, 0x6f, 0xa6, 0x41, 0xe4, 0xc6, 0x86, 0x8e, 0x13, 0xb3, 0x31, 0xe9, 0x40, 0xc5, 0xa5, 0x71,
0x3f, 0xf2, 0x42, 0xbe, 0x5b, 0xa3, 0x88, 0xd3, 0x49, 0x13, 0xd9, 0x81, 0x55, 0x4e, 0x7f, 0xe9,
0xb9, 0x46, 0x09, 0x89, 0x56, 0xf8, 0xf0, 0x02, 0xc9, 0xfa, 0xc1, 0x35, 0x8d, 0x8c, 0x15, 0x41,
0x86, 0x03, 0x6e, 0x9d, 0x7a, 0x2e, 0x1b, 0x1a, 0xab, 0x1d, 0xad, 0x5b, 0xb2, 0xc5, 0x80, 0x6c,
0xc3, 0xca, 0x90, 0x7a, 0x83, 0x21, 0x33, 0xca, 0x68, 0x96, 0x23, 0x62, 0xc0, 0x6a, 0x18, 0xd1,
0x6b, 0x8f, 0x4e, 0x8d, 0x35, 0x9c, 0x50, 0x43, 0x8e, 0x13, 0x3a, 0x03, 0x1a, 0x1b, 0x20, 0x70,
0x70, 0x40, 0x08, 0x14, 0x27, 0x13, 0xcf, 0x35, 0x2a, 0x48, 0x89, 0xdf, 0xe4, 0x10, 0x6a, 0x6e,
0x30, 0x1d, 0xfb, 0x81, 0xe3, 0x5e, 0xf6, 0x83, 0xc9, 0x98, 0x19, 0x55, 0x5c, 0xb2, 0xae, 0xac,
0x67, 0xdc, 0x48, 0xf6, 0x01, 0x38, 0xb0, 0x74, 0x59, 0x47, 0x97, 0x35, 0x6e, 0x11, 0xd3, 0x87,
0x50, 0xbb, 0x72, 0xae, 0x83, 0xc8, 0x63, 0x54, 0xba, 0xd4, 0x04, 0x8a, 0xb2, 0x0a, 0xb7, 0x03,
0x58, 0xef, 0x07, 0x23, 0x9e, 0x7c, 0xe9, 0xf5, 0x18, 0xbd, 0xaa, 0xd2, 0x28, 0x9c, 0xb6, 0xa0,
0x14, 0xf7, 0x83, 0x88, 0x1a, 0x75, 0xb1, 0x77, 0x1c, 0x90, 0x36, 0x54, 0xf0, 0x43, 0x2e, 0xdc,
0xc0, 0x39, 0x40, 0xd3, 0x6c, 0x59, 0x18, 0x79, 0x7d, 0x6a, 0x10, 0x19, 0x32, 0x1f, 0xf0, 0x90,
0x63, 0xef, 0x96, 0x1a, 0x9b, 0x98, 0x7c, 0xfc, 0xe6, 0xe9, 0x8c, 0x99, 0xc3, 0x26, 0xb1, 0xb1,
0x25, 0xd2, 0x29, 0x46, 0xe4, 0x67, 0x00, 0xfd, 0x88, 0x3a, 0x8c, 0xba, 0x97, 0x0e, 0x33, 0x1a,
0x1d, 0xad, 0x5b, 0x39, 0x31, 0x8f, 0x45, 0xe9, 0x1d, 0xab, 0xd2, 0x3b, 0xfe, 0xb5, 0xaa, 0xe7,
0x6f, 0x8a, 0x6f, 0xff, 0xd3, 0xd6, 0xec, 0x35, 0xb9, 0xe6, 0x94, 0x71, 0x80, 0x49, 0xe8, 0x2a,
0x80, 0xed, 0x87, 0x02, 0xc8, 0x35, 0x02, 0xc0, 0xa5, 0x3e, 0x95, 0x00, 0x3b, 0x0f, 0x05, 0x90,
0x6b, 0x4e, 0x19, 0x39, 0x83, 0x6a, 0x44, 0x45, 0x36, 0x11, 0x62, 0xff, 0x81, 0x10, 0x95, 0xd9,
0xaa, 0x53, 0x46, 0xbe, 0x0f, 0x8f, 0xd5, 0x2e, 0x54, 0xed, 0x1a, 0x98, 0xbe, 0x75, 0x69, 0x7e,
0x29, 0x4a, 0xd8, 0x84, 0x32, 0x9f, 0x1f, 0x3b, 0x23, 0x6a, 0xec, 0x8a, 0xce, 0x50, 0x63, 0x7e,
0x5c, 0x7d, 0x87, 0xd1, 0x41, 0x10, 0xdd, 0xf0, 0xf5, 0x66, 0x47, 0xef, 0xea, 0x36, 0x28, 0xd3,
0x85, 0x4b, 0xbe, 0x82, 0x7a, 0x92, 0x04, 0x41, 0x9a, 0x08, 0xf2, 0x38, 0xc1, 0x82, 0x58, 0x75,
0xd0, 0xe9, 0x1f, 0x98, 0xb1, 0x87, 0xb3, 0xfc, 0x93, 0x9c, 0x00, 0xcc, 0xbb, 0xdd, 0x68, 0x61,
0x90, 0xe4, 0x58, 0x28, 0xd0, 0xf1, 0xe9, 0x6c, 0xc6, 0x4e, 0x78, 0x91, 0x0e, 0x14, 0x39, 0x91,
0xd1, 0x46, 0xef, 0xaa, 0xf2, 0xe6, 0x2c, 0x36, 0xce, 0xf0, 0x3d, 0xd3, 0xb1, 0xf3, 0xc6, 0xa7,
0x97, 0x83, 0x5b, 0x2f, 0x34, 0x3a, 0x1d, 0xad, 0x5b, 0xb6, 0x41, 0x98, 0xce, 0x6f, 0xbd, 0x50,
0x94, 0xef, 0xf8, 0x9a, 0x46, 0xec, 0x92, 0x46, 0x51, 0x10, 0x19, 0x4f, 0x70, 0x4b, 0x55, 0x69,
0x7c, 0xce, 0x6d, 0xd6, 0x0f, 0xa0, 0xf1, 0x0c, 0x03, 0x50, 0x3a, 0x63, 0xd3, 0xdf, 0x4f, 0x68,
0x3c, 0x97, 0x1b, 0x5d, 0xc8, 0x8d, 0xd5, 0x83, 0x7d, 0x9b, 0x62, 0xdb, 0xdb, 0xb4, 0x7f, 0xd3,
0xf7, 0xef, 0x5d, 0xf0, 0x1c, 0xc8, 0x39, 0x65, 0x79, 0x5e, 0x4a, 0xc5, 0xda, 0x50, 0x99, 0x7a,
0x6c, 0x78, 0xe9, 0x4c, 0xd8, 0x30, 0x88, 0x50, 0xcb, 0xca, 0x36, 0x70, 0xd3, 0x29, 0x5a, 0xac,
0x77, 0x05, 0xd8, 0xfc, 0xa5, 0x17, 0xa7, 0x80, 0x08, 0x14, 0xb9, 0x4c, 0x48, 0x28, 0xfc, 0x9e,
0xb5, 0x4f, 0x21, 0xd1, 0x3e, 0x35, 0x28, 0x4c, 0x5d, 0x29, 0x85, 0x85, 0x29, 0x2a, 0xd9, 0x95,
0x47, 0x7d, 0xd7, 0x28, 0x76, 0x74, 0xae, 0x64, 0x38, 0xe0, 0xd6, 0x20, 0x72, 0x69, 0x84, 0xb2,
0xb7, 0x66, 0x8b, 0xc1, 0x72, 0x59, 0xac, 0xa4, 0xca, 0x22, 0xa1, 0x97, 0xab, 0x38, 0xa9, 0xf4,
0x72, 0xde, 0xb4, 0xe5, 0x8e, 0x9e, 0x68, 0xda, 0x27, 0x50, 0xf5, 0xe2, 0xcb, 0x59, 0xf9, 0x1a,
0x6b, 0x1d, 0xbd, 0x5b, 0xb6, 0x2b, 0x5e, 0x6c, 0x2b, 0x13, 0xdf, 0x8a, 0xef, 0x8d, 0x3c, 0x86,
0x62, 0xa8, 0xdb, 0x62, 0xa0, 0xaa, 0xaa, 0x32, 0xab, 0x2a, 0xeb, 0x15, 0x6c, 0x2c, 0xe6, 0x25,
0xf4, 0x6f, 0xf0, 0x52, 0x08, 0x98, 0xe3, 0xcb, 0xb4, 0x88, 0x01, 0xf9, 0x21, 0x94, 0xd5, 0xfd,
0x67, 0x14, 0x3a, 0x7a, 0xb7, 0x72, 0x52, 0x57, 0x05, 0x35, 0x5b, 0x3e, 0xf3, 0xb0, 0x28, 0x90,
0x33, 0x14, 0x09, 0x35, 0x77, 0xc1, 0xe8, 0x68, 0x7e, 0xdd, 0x68, 0xc9, 0xeb, 0xe6, 0x00, 0xd6,
0xe7, 0x45, 0xcb, 0xd3, 0x20, 0x52, 0x5f, 0x9d, 0x1b, 0xc5, 0xe5, 0x21, 0xb4, 0x4e, 0x4f, 0x68,
0x9d, 0xf5, 0x17, 0x0d, 0x1a, 0x8b, 0x3c, 0xea, 0x68, 0xf7, 0x60, 0x8d, 0xd7, 0xd9, 0x94, 0x2b,
0x31, 0xd2, 0x95, 0xed, 0xb9, 0x61, 0xf9, 0x50, 0x0a, 0xa9, 0x43, 0xf9, 0x49, 0x22, 0x5a, 0x1d,
0xa3, 0x35, 0x55, 0xb4, 0xe9, 0xb8, 0x12, 0x71, 0x9f, 0x42, 0xf3, 0x45, 0xb2, 0x60, 0xe5, 0x81,
0xe4, 0xd4, 0x37, 0x2f, 0x36, 0x76, 0x13, 0x8a, 0x62, 0x2b, 0xd9, 0xf8, 0x6d, 0x9d, 0x80, 0x99,
0x3c, 0x93, 0x9f, 0x07, 0xd1, 0x2f, 0x82, 0x11, 0x55, 0x08, 0xb3, 0x93, 0xd5, 0x12, 0x27, 0x6b,
0xfd, 0x4d, 0x83, 0x9d, 0x8c, 0x45, 0x98, 0xf4, 0xa5, 0x58, 0xc5, 0xba, 0x64, 0xac, 0x87, 0x50,
0x9b, 0x39, 0x88, 0x0b, 0x5a, 0xbc, 0x06, 0xd6, 0x95, 0xf5, 0x0c, 0x2f, 0x6a, 0x2e, 0x05, 0xca,
0x0d, 0xb5, 0x4b, 0x97, 0x52, 0x20, 0x8d, 0xbf, 0xe2, 0xc2, 0x95, 0xac, 0x92, 0xe2, 0xbd, 0x55,
0xf2, 0x1a, 0x9a, 0x99, 0xa1, 0xc6, 0x61, 0x30, 0x8e, 0x29, 0xf9, 0x3a, 0x01, 0xa6, 0x21, 0x58,
0x5b, 0x81, 0xe5, 0x04, 0x9b, 0xc0, 0x7e, 0xa7, 0x41, 0xe3, 0x05, 0x75, 0xa2, 0xfe, 0xf0, 0xae,
0xae, 0x2f, 0x65, 0x74, 0x7d, 0x29, 0xa7, 0xeb, 0x97, 0x12, 0x59, 0x4c, 0x15, 0x0d, 0x07, 0x09,
0x22, 0x26, 0xfb, 0x1f, 0xbf, 0x55, 0xcf, 0xad, 0xce, 0x7b, 0xee, 0x7f, 0x1a, 0xac, 0xab, 0x2d,
0xbd, 0xc0, 0x8b, 0x3e, 0x43, 0xcf, 0x54, 0x18, 0xf3, 0x76, 0x00, 0x65, 0x5a, 0x94, 0x0c, 0x7d,
0xf9, 0x89, 0x25, 0x1e, 0x12, 0xc5, 0xe4, 0x43, 0x62, 0xf1, 0x96, 0x2f, 0x7d, 0xd7, 0x5b, 0x7e,
0xe5, 0xb3, 0x6f, 0x79, 0x2b, 0x80, 0xcd, 0xe5, 0xb3, 0xc8, 0x57, 0x1a, 0x1e, 0x44, 0xc8, 0x85,
0x4d, 0x3e, 0x4a, 0x71, 0xb0, 0x50, 0x59, 0xfa, 0xbd, 0x95, 0xf5, 0x15, 0x34, 0x9e, 0xc9, 0xd7,
0xdc, 0x22, 0x65, 0x1d, 0xf4, 0x49, 0xe4, 0x4b, 0x01, 0xe2, 0x9f, 0x27, 0xff, 0x02, 0xa8, 0x28,
0x9f, 0xd3, 0x6f, 0x2f, 0xc8, 0x9f, 0x16, 0xef, 0x0a, 0x59, 0x5d, 0xc4, 0xba, 0xa3, 0xf4, 0x64,
0x65, 0x99, 0x07, 0x77, 0xfa, 0x88, 0xaa, 0xb6, 0xf6, 0xff, 0xfc, 0x8f, 0xff, 0xfe, 0xb5, 0xb0,
0x43, 0x1a, 0xbd, 0xa5, 0x9f, 0x15, 0xbd, 0x21, 0xe7, 0xb9, 0x85, 0xad, 0x2c, 0x05, 0x21, 0x33,
0xec, 0x3b, 0xf4, 0xc5, 0xdc, 0x4e, 0x1d, 0xca, 0x73, 0xfe, 0xb3, 0xc1, 0x3a, 0x44, 0xce, 0xb6,
0x69, 0xa6, 0x38, 0x67, 0xd7, 0xc8, 0x4f, 0xb5, 0x23, 0xe2, 0x42, 0x6d, 0x51, 0xdd, 0xc8, 0x7e,
0xb6, 0xea, 0xdd, 0xc7, 0xd7, 0x44, 0xbe, 0x86, 0x55, 0x5f, 0xe6, 0xe3, 0x2c, 0xaf, 0xa0, 0xf6,
0x12, 0x2b, 0x63, 0xc6, 0x92, 0x3a, 0xc9, 0xfb, 0x80, 0xcd, 0x4c, 0x60, 0x07, 0x6a, 0x8b, 0xef,
0x90, 0xf9, 0xf6, 0x33, 0xdf, 0x27, 0xb9, 0x2c, 0x06, 0xb2, 0x90, 0xa3, 0x14, 0x0b, 0x79, 0x09,
0x95, 0xc4, 0x83, 0x84, 0xcc, 0x2e, 0x85, 0xf4, 0x2b, 0xc5, 0x4c, 0x05, 0xa5, 0x60, 0x49, 0x1a,
0xd6, 0x85, 0xcd, 0x73, 0xca, 0x6c, 0xea, 0xf3, 0x7e, 0x51, 0xfe, 0x71, 0x46, 0x5e, 0x76, 0xb3,
0x2a, 0x0c, 0x2b, 0xdb, 0xea, 0x20, 0xba, 0x49, 0x8c, 0x8c, 0x33, 0x46, 0x5c, 0x72, 0x05, 0xf5,
0xe5, 0xa6, 0xc8, 0xa0, 0x98, 0xe7, 0x2c, 0xab, 0x81, 0xac, 0x27, 0x48, 0xd3, 0x24, 0xbb, 0x29,
0x1a, 0xf5, 0xf3, 0x89, 0x50, 0xa8, 0x26, 0xb7, 0x47, 0x9a, 0xd9, 0x9b, 0x16, 0x69, 0xba, 0x23,
0xa2, 0xfc, 0x4e, 0xf1, 0xbd, 0x98, 0x91, 0x11, 0xd4, 0x16, 0x45, 0x65, 0x7e, 0xdc, 0x99, 0xc2,
0x6f, 0x36, 0xf3, 0xa6, 0x39, 0x59, 0x1b, 0xc9, 0x76, 0xc9, 0x4e, 0x8a, 0x2c, 0x46, 0x6f, 0xe2,
0x42, 0x3d, 0xd1, 0x7a, 0x42, 0xb9, 0x1b, 0xcb, 0xd9, 0x43, 0x73, 0x6e, 0x5d, 0xc9, 0xdc, 0x59,
0xdb, 0x69, 0x0e, 0xbe, 0x8e, 0xd7, 0xf0, 0x6f, 0xa0, 0x7e, 0xfe, 0x40, 0x96, 0x6c, 0xb3, 0xd5,
0x42, 0x12, 0x83, 0xe4, 0x90, 0x90, 0xdf, 0xa6, 0x04, 0x06, 0x9f, 0xf2, 0x24, 0x67, 0xd3, 0xb9,
0xc1, 0x58, 0xc8, 0xb3, 0x97, 0xa3, 0x29, 0x88, 0x79, 0xf2, 0x6f, 0x1d, 0x40, 0x3e, 0xf5, 0xb9,
0xb4, 0x06, 0x42, 0x5a, 0x97, 0x1e, 0xff, 0x5f, 0x5c, 0x1f, 0x77, 0x55, 0x3c, 0x32, 0x90, 0x3f,
0xc2, 0x76, 0xf6, 0x0f, 0x0e, 0x72, 0xa8, 0x60, 0xef, 0xfc, 0x41, 0x92, 0x1b, 0xfc, 0x01, 0x52,
0xef, 0x9b, 0xb9, 0xd4, 0xfc, 0x2c, 0x43, 0xf5, 0xbb, 0x68, 0x99, 0xfc, 0x0b, 0x65, 0x49, 0xc6,
0x7b, 0x94, 0x1f, 0xaf, 0x0f, 0x5b, 0x67, 0x3e, 0x75, 0x52, 0xd1, 0x7e, 0xee, 0xd9, 0x7e, 0x0f,
0x99, 0x5a, 0x47, 0x7b, 0x79, 0x4c, 0x3d, 0xc7, 0xf7, 0xbf, 0xf9, 0xf1, 0xdf, 0x3f, 0xb6, 0xb4,
0xf7, 0x1f, 0x5b, 0xda, 0x87, 0x8f, 0x2d, 0xed, 0xed, 0xa7, 0xd6, 0xa3, 0xf7, 0x9f, 0x5a, 0x8f,
0xfe, 0xf9, 0xa9, 0xf5, 0x08, 0xe4, 0x5f, 0x63, 0xdf, 0x6a, 0xaf, 0x37, 0x46, 0x41, 0x44, 0xdd,
0xa0, 0x2f, 0x81, 0xbe, 0xbe, 0x7e, 0xfa, 0x66, 0x05, 0xc9, 0x7e, 0xf4, 0xff, 0x00, 0x00, 0x00,
0xff, 0xff, 0x68, 0x5b, 0x98, 0xfc, 0x57, 0x13, 0x00, 0x00,
// 1690 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xc1, 0x6e, 0xe3, 0xc8,
0x11, 0x1d, 0x8a, 0x92, 0x2d, 0x97, 0x64, 0x8d, 0xdc, 0xb6, 0x6c, 0x9a, 0xb2, 0x25, 0x0d, 0x1d,
0x27, 0x5e, 0x23, 0xb0, 0x30, 0x0e, 0x92, 0xc3, 0xee, 0x21, 0xf0, 0x7a, 0x26, 0x8e, 0x81, 0x20,
0x58, 0x70, 0x32, 0x58, 0x60, 0x2f, 0x0a, 0x47, 0x6c, 0x4b, 0x4c, 0x28, 0x91, 0x21, 0x5b, 0x56,
0x6c, 0x24, 0x97, 0x7c, 0x40, 0xb0, 0x40, 0x80, 0xfd, 0x92, 0x7c, 0x44, 0x8e, 0x0b, 0x24, 0x87,
0x00, 0x39, 0x64, 0x31, 0x93, 0x1f, 0xc8, 0x1f, 0x04, 0x5d, 0xdd, 0x4d, 0x51, 0x22, 0x69, 0x7b,
0x37, 0xb7, 0xee, 0xea, 0xea, 0xf7, 0xba, 0xba, 0xab, 0x9e, 0x8a, 0x82, 0x96, 0x13, 0x7a, 0xfd,
0xdb, 0x97, 0x7d, 0x37, 0x18, 0xce, 0x26, 0x74, 0xca, 0xce, 0xc2, 0x28, 0x60, 0x01, 0x59, 0x73,
0x42, 0xef, 0xec, 0xf6, 0xa5, 0xd9, 0x1d, 0x05, 0xc1, 0xc8, 0xa7, 0x7d, 0xb4, 0xbe, 0x9b, 0xdd,
0xf4, 0x99, 0x37, 0xa1, 0x31, 0x73, 0x26, 0xa1, 0x70, 0x34, 0x77, 0x46, 0xc1, 0x28, 0xc0, 0x61,
0x9f, 0x8f, 0xa4, 0xf5, 0x40, 0x6e, 0xe3, 0xe0, 0xce, 0x74, 0x1a, 0x30, 0x87, 0x79, 0xc1, 0x34,
0x96, 0xab, 0xed, 0x55, 0x50, 0x3a, 0x09, 0xd9, 0x9d, 0x5c, 0xdc, 0x93, 0x07, 0x72, 0x18, 0x73,
0x86, 0xe3, 0xc5, 0x91, 0xcc, 0x2d, 0xb9, 0x30, 0x8b, 0x69, 0x24, 0x4c, 0xd6, 0x37, 0x55, 0xa8,
0xbe, 0x92, 0x07, 0x27, 0x0d, 0x28, 0x79, 0xae, 0xa1, 0xf5, 0xb4, 0x13, 0xdd, 0x2e, 0x79, 0x2e,
0xd9, 0x81, 0x0a, 0xf3, 0x98, 0x4f, 0x8d, 0x52, 0x4f, 0x3b, 0xd9, 0xb0, 0xc5, 0x84, 0x98, 0x50,
0xfd, 0x2d, 0xbd, 0x9b, 0x07, 0x91, 0x1b, 0x1b, 0x3a, 0x2e, 0x24, 0x73, 0xd2, 0x83, 0x9a, 0x4b,
0xe3, 0x61, 0xe4, 0x85, 0xfc, 0xb4, 0x46, 0x19, 0x97, 0xd3, 0x26, 0xb2, 0x07, 0xeb, 0x9c, 0x7e,
0xe0, 0xb9, 0x46, 0x05, 0x89, 0xd6, 0xf8, 0xf4, 0x1a, 0xc9, 0x86, 0xc1, 0x2d, 0x8d, 0x8c, 0x35,
0x41, 0x86, 0x13, 0x6e, 0x9d, 0x7b, 0x2e, 0x1b, 0x1b, 0xeb, 0x3d, 0xed, 0xa4, 0x62, 0x8b, 0x09,
0xd9, 0x85, 0xb5, 0x31, 0xf5, 0x46, 0x63, 0x66, 0x54, 0xd1, 0x2c, 0x67, 0xc4, 0x80, 0xf5, 0x30,
0xa2, 0xb7, 0x1e, 0x9d, 0x1b, 0x1b, 0xb8, 0xa0, 0xa6, 0x1c, 0x27, 0x74, 0x46, 0x34, 0x36, 0x40,
0xe0, 0xe0, 0x84, 0x10, 0x28, 0xcf, 0x66, 0x9e, 0x6b, 0xd4, 0x90, 0x12, 0xc7, 0xe4, 0x18, 0x1a,
0x6e, 0x30, 0x9f, 0xfa, 0x81, 0xe3, 0x0e, 0x86, 0xc1, 0x6c, 0xca, 0x8c, 0x3a, 0x6e, 0xd9, 0x54,
0xd6, 0x4b, 0x6e, 0x24, 0x87, 0x00, 0x1c, 0x58, 0xba, 0x6c, 0xa2, 0xcb, 0x06, 0xb7, 0x88, 0xe5,
0x63, 0x68, 0xdc, 0x38, 0xb7, 0x41, 0xe4, 0x31, 0x2a, 0x5d, 0x1a, 0x02, 0x45, 0x59, 0x85, 0xdb,
0x11, 0x6c, 0x0e, 0x83, 0x09, 0xbf, 0x7c, 0xe9, 0xf5, 0x1c, 0xbd, 0xea, 0xd2, 0x28, 0x9c, 0x76,
0xa0, 0x12, 0x0f, 0x83, 0x88, 0x1a, 0x4d, 0x71, 0x76, 0x9c, 0x90, 0x2e, 0xd4, 0x70, 0x20, 0x37,
0x6e, 0xe1, 0x1a, 0xa0, 0x29, 0xd9, 0x16, 0x46, 0xde, 0x90, 0x1a, 0x44, 0x86, 0xcc, 0x27, 0x3c,
0xe4, 0xd8, 0xbb, 0xa7, 0xc6, 0x36, 0x5e, 0x3e, 0x8e, 0xf9, 0x75, 0xc6, 0xcc, 0x61, 0xb3, 0xd8,
0xd8, 0x11, 0xd7, 0x29, 0x66, 0xe4, 0xa7, 0x00, 0xc3, 0x88, 0x3a, 0x8c, 0xba, 0x03, 0x87, 0x19,
0xad, 0x9e, 0x76, 0x52, 0x3b, 0x37, 0xcf, 0x44, 0xea, 0x9d, 0xa9, 0xd4, 0x3b, 0xfb, 0x95, 0xca,
0xe7, 0x4f, 0xcb, 0x5f, 0xfe, 0xbb, 0xab, 0xd9, 0x1b, 0x72, 0xcf, 0x05, 0xe3, 0x00, 0xb3, 0xd0,
0x55, 0x00, 0xbb, 0x4f, 0x05, 0x90, 0x7b, 0x04, 0x80, 0x4b, 0x7d, 0x2a, 0x01, 0xf6, 0x9e, 0x0a,
0x20, 0xf7, 0x5c, 0x30, 0x72, 0x09, 0xf5, 0x88, 0x8a, 0xdb, 0x44, 0x88, 0xc3, 0x27, 0x42, 0xd4,
0x92, 0x5d, 0x17, 0x8c, 0x7c, 0x1f, 0x9e, 0xab, 0x53, 0xa8, 0xdc, 0x35, 0xf0, 0xfa, 0x36, 0xa5,
0xf9, 0xad, 0x48, 0x61, 0x13, 0xaa, 0x7c, 0x7d, 0xea, 0x4c, 0xa8, 0xb1, 0x2f, 0x2a, 0x43, 0xcd,
0xf9, 0x73, 0x0d, 0x1d, 0x46, 0x47, 0x41, 0x74, 0xc7, 0xf7, 0x9b, 0x3d, 0xfd, 0x44, 0xb7, 0x41,
0x99, 0xae, 0x5d, 0xf2, 0x11, 0x34, 0xd3, 0x24, 0x08, 0xd2, 0x46, 0x90, 0xe7, 0x29, 0x16, 0xc4,
0x6a, 0x82, 0x4e, 0x7f, 0xcf, 0x8c, 0x03, 0x5c, 0xe5, 0x43, 0x72, 0x0e, 0xb0, 0xa8, 0x76, 0xa3,
0x83, 0x41, 0x92, 0x33, 0xa1, 0x40, 0x67, 0x17, 0xc9, 0x8a, 0x9d, 0xf2, 0x22, 0x3d, 0x28, 0x73,
0x22, 0xa3, 0x8b, 0xde, 0x75, 0xe5, 0xcd, 0x59, 0x6c, 0x5c, 0xe1, 0x67, 0xa6, 0x53, 0xe7, 0x9d,
0x4f, 0x07, 0xa3, 0x7b, 0x2f, 0x34, 0x7a, 0x3d, 0xed, 0xa4, 0x6a, 0x83, 0x30, 0x5d, 0xdd, 0x7b,
0xa1, 0x48, 0xdf, 0xe9, 0x2d, 0x8d, 0xd8, 0x80, 0x46, 0x51, 0x10, 0x19, 0x2f, 0xf0, 0x48, 0x75,
0x69, 0x7c, 0xcd, 0x6d, 0xd6, 0x0f, 0xa0, 0xf5, 0x0a, 0x03, 0x50, 0x3a, 0x63, 0xd3, 0xdf, 0xcd,
0x68, 0xbc, 0x90, 0x1b, 0x5d, 0xc8, 0x8d, 0xd5, 0x87, 0x43, 0x9b, 0x62, 0xd9, 0xdb, 0x74, 0x78,
0x37, 0xf4, 0x1f, 0xdd, 0xf0, 0x1a, 0xc8, 0x15, 0x65, 0x45, 0x5e, 0x4a, 0xc5, 0xba, 0x50, 0x9b,
0x7b, 0x6c, 0x3c, 0x70, 0x66, 0x6c, 0x1c, 0x44, 0xa8, 0x65, 0x55, 0x1b, 0xb8, 0xe9, 0x02, 0x2d,
0xd6, 0x00, 0xda, 0x6f, 0x16, 0x30, 0xf1, 0xa5, 0x7c, 0x13, 0x85, 0xd7, 0x85, 0x9a, 0x92, 0xf6,
0x41, 0x42, 0x0f, 0xca, 0x74, 0xed, 0xae, 0x3e, 0x6d, 0x69, 0xf5, 0x69, 0xad, 0xaf, 0x4a, 0xb0,
0xfd, 0x0b, 0x2f, 0xce, 0x9c, 0x94, 0x40, 0x99, 0xeb, 0x90, 0x3c, 0x2b, 0x8e, 0x93, 0xfa, 0x2c,
0xa5, 0xea, 0xb3, 0x01, 0xa5, 0xb9, 0x2b, 0xb5, 0xb6, 0x34, 0x47, 0xa9, 0xbc, 0xf1, 0xa8, 0xef,
0x1a, 0xe5, 0x9e, 0xce, 0xa5, 0x12, 0x27, 0xdc, 0x1a, 0x44, 0x2e, 0x8d, 0x50, 0x57, 0x37, 0x6c,
0x31, 0x59, 0x3d, 0xdc, 0x5a, 0x26, 0xef, 0x52, 0x82, 0xbc, 0x8e, 0x8b, 0x4a, 0x90, 0x17, 0xaa,
0x50, 0xed, 0xe9, 0x29, 0x55, 0x78, 0x01, 0x75, 0x2f, 0x1e, 0x24, 0xf5, 0x61, 0x6c, 0xf4, 0xf4,
0x93, 0xaa, 0x5d, 0xf3, 0x62, 0x5b, 0x99, 0xf8, 0x51, 0x7c, 0x6f, 0xe2, 0x31, 0x54, 0x5b, 0xdd,
0x16, 0x13, 0x95, 0xb6, 0xb5, 0x24, 0x6d, 0xad, 0xcf, 0x61, 0x6b, 0xf9, 0x5e, 0x42, 0xff, 0x0e,
0x7f, 0x75, 0x02, 0xe6, 0xf8, 0xf2, 0x5a, 0xc4, 0x84, 0xfc, 0x10, 0xaa, 0xea, 0xca, 0xf1, 0x86,
0x6b, 0xe7, 0x4d, 0x95, 0xb1, 0xc9, 0xf6, 0xc4, 0xc3, 0xa2, 0x40, 0x2e, 0x51, 0x85, 0xd4, 0xda,
0x35, 0xa3, 0x93, 0xc5, 0xef, 0x99, 0x96, 0xfe, 0x3d, 0x3b, 0x82, 0xcd, 0x45, 0x55, 0x88, 0x07,
0xe4, 0xbc, 0xf5, 0x85, 0x51, 0xfc, 0x3a, 0x09, 0x31, 0xd5, 0x53, 0x62, 0x6a, 0xfd, 0x59, 0x83,
0xd6, 0x32, 0x8f, 0x7a, 0xda, 0x03, 0xd8, 0xe0, 0x89, 0x3c, 0xe7, 0x52, 0x8f, 0x74, 0x55, 0x7b,
0x61, 0x78, 0x34, 0x63, 0xc8, 0x4f, 0x52, 0xd1, 0xea, 0x18, 0xad, 0xa9, 0xa2, 0xcd, 0xc6, 0x95,
0x8a, 0xfb, 0x62, 0x29, 0x95, 0x93, 0x07, 0x29, 0x28, 0x20, 0x9e, 0x6c, 0xec, 0x2e, 0x14, 0xc9,
0x56, 0xb1, 0x71, 0x6c, 0x9d, 0x83, 0x99, 0x7e, 0x93, 0x9f, 0x05, 0xd1, 0xcf, 0x83, 0x09, 0x55,
0x08, 0xc9, 0xcb, 0x6a, 0xa9, 0x97, 0xb5, 0xfe, 0xaa, 0xc1, 0x5e, 0xce, 0x26, 0xbc, 0xf4, 0x95,
0x58, 0xc5, 0xbe, 0x74, 0xac, 0xc7, 0xd0, 0x48, 0x1c, 0x44, 0x07, 0x20, 0xda, 0x8d, 0x4d, 0x65,
0xbd, 0xc4, 0x4e, 0x80, 0x6b, 0x8d, 0x72, 0x43, 0x71, 0xd4, 0xa5, 0xd6, 0x48, 0xe3, 0x2f, 0xb9,
0x32, 0xa6, 0xb3, 0xa4, 0xfc, 0x68, 0x96, 0x7c, 0x01, 0xed, 0xdc, 0x50, 0xe3, 0x30, 0x98, 0xc6,
0x94, 0x7c, 0x92, 0x02, 0xd3, 0x10, 0xac, 0xab, 0xc0, 0x0a, 0x82, 0x4d, 0x61, 0x7f, 0xa5, 0x41,
0xeb, 0x0d, 0x75, 0xa2, 0xe1, 0xf8, 0xa1, 0xaa, 0xaf, 0xe4, 0x54, 0x7d, 0xa5, 0xa0, 0xea, 0x57,
0x2e, 0xb2, 0x9c, 0x49, 0x1a, 0x0e, 0x12, 0x44, 0x4c, 0xd6, 0x3f, 0x8e, 0x55, 0xcd, 0xad, 0x2f,
0x6a, 0xee, 0xbf, 0x1a, 0x6c, 0xaa, 0x23, 0xbd, 0xc1, 0x4e, 0x22, 0x47, 0x30, 0xd3, 0x82, 0x27,
0xca, 0x21, 0x2d, 0x78, 0x29, 0xc9, 0xd0, 0x57, 0x7b, 0x38, 0xd1, 0xa9, 0x94, 0xd3, 0x9d, 0xca,
0x72, 0x1b, 0x51, 0xf9, 0x7f, 0xdb, 0x88, 0xb5, 0x6f, 0xdd, 0x46, 0x58, 0x01, 0x6c, 0xaf, 0xbe,
0x45, 0xb1, 0xd2, 0xf0, 0x20, 0x42, 0x2e, 0x6c, 0xb2, 0xeb, 0xc5, 0xc9, 0x52, 0x66, 0xe9, 0x8f,
0x66, 0xd6, 0x47, 0xd0, 0x7a, 0x25, 0xdb, 0xc5, 0x65, 0xca, 0x26, 0xe8, 0xb3, 0xc8, 0x97, 0x02,
0xc4, 0x87, 0xe7, 0xff, 0xa8, 0x41, 0x4d, 0xf9, 0x5c, 0x7c, 0x76, 0x4d, 0xfe, 0xb8, 0xfc, 0x5b,
0x21, 0xb3, 0x8b, 0x58, 0x0f, 0xa4, 0x9e, 0xcc, 0x2c, 0xf3, 0xe8, 0x41, 0x1f, 0x91, 0xd5, 0xd6,
0xe1, 0x9f, 0xfe, 0xfe, 0x9f, 0xbf, 0x94, 0xf6, 0x48, 0xab, 0xbf, 0xf2, 0xdd, 0xd2, 0x1f, 0x73,
0x9e, 0x7b, 0xd8, 0xc9, 0x53, 0x10, 0x92, 0x60, 0x3f, 0xa0, 0x2f, 0xe6, 0x6e, 0xe6, 0x51, 0x5e,
0xf3, 0xef, 0x12, 0xeb, 0x18, 0x39, 0xbb, 0xa6, 0x99, 0xe1, 0x4c, 0x7e, 0x46, 0x3e, 0xd6, 0x4e,
0x89, 0x0b, 0x8d, 0x65, 0x75, 0x23, 0x87, 0xf9, 0xaa, 0xf7, 0x18, 0x5f, 0x1b, 0xf9, 0x5a, 0x56,
0x73, 0x95, 0x8f, 0xb3, 0x7c, 0x0e, 0x8d, 0xb7, 0x98, 0x19, 0x09, 0x4b, 0xe6, 0x25, 0x1f, 0x03,
0x36, 0x73, 0x81, 0x1d, 0x68, 0x2c, 0x37, 0x3a, 0x8b, 0xe3, 0xe7, 0x36, 0x40, 0x85, 0x2c, 0x06,
0xb2, 0x90, 0xd3, 0x0c, 0x0b, 0x79, 0x0b, 0xb5, 0x54, 0xc7, 0x43, 0x92, 0x1f, 0x85, 0x6c, 0x1b,
0x64, 0x66, 0x82, 0x52, 0xb0, 0x24, 0x0b, 0xeb, 0xc2, 0xf6, 0x15, 0x65, 0x36, 0xf5, 0x79, 0xbd,
0x24, 0x8d, 0x50, 0xce, 0xbd, 0xec, 0xe7, 0x65, 0x18, 0x66, 0xb6, 0xd5, 0x43, 0x74, 0x93, 0x18,
0x39, 0x6f, 0x8c, 0xb8, 0xe4, 0x06, 0x9a, 0xab, 0x45, 0x91, 0x43, 0xb1, 0xb8, 0xb3, 0xbc, 0x02,
0xb2, 0x5e, 0x20, 0x4d, 0x9b, 0xec, 0x67, 0x68, 0xd4, 0xf7, 0x19, 0xa1, 0x50, 0x4f, 0x1f, 0x8f,
0xb4, 0xf3, 0x0f, 0x2d, 0xae, 0xe9, 0x81, 0x88, 0x8a, 0x2b, 0xc5, 0xf7, 0x62, 0x46, 0x26, 0xd0,
0x58, 0x16, 0x95, 0xc5, 0x73, 0xe7, 0x0a, 0xbf, 0xd9, 0x2e, 0x5a, 0xe6, 0x64, 0x5d, 0x24, 0xdb,
0x27, 0x7b, 0x19, 0xb2, 0x18, 0xbd, 0x89, 0x0b, 0xcd, 0x54, 0xe9, 0x09, 0xe5, 0x6e, 0xad, 0xde,
0x1e, 0x9a, 0x0b, 0xf3, 0x4a, 0xde, 0x9d, 0xb5, 0x9b, 0xe5, 0xe0, 0xfb, 0x78, 0x0e, 0xff, 0x1a,
0x9a, 0x57, 0x4f, 0x64, 0xc9, 0x37, 0x5b, 0x1d, 0x24, 0x31, 0x48, 0x01, 0x09, 0xf9, 0x4d, 0x46,
0x60, 0xf0, 0x5b, 0x81, 0x14, 0x1c, 0xba, 0x30, 0x18, 0x0b, 0x79, 0x0e, 0x0a, 0x34, 0x45, 0x60,
0xde, 0x2d, 0x71, 0x25, 0x9d, 0x7d, 0xae, 0x98, 0xad, 0xf6, 0xfd, 0x85, 0xc4, 0xdf, 0x43, 0xe2,
0x8e, 0x99, 0xcd, 0x40, 0xf5, 0x5b, 0xfc, 0xb1, 0x76, 0x7a, 0xfe, 0x2f, 0x1d, 0x40, 0x7e, 0xc6,
0x70, 0x55, 0x0f, 0x84, 0xaa, 0xaf, 0x7c, 0xd8, 0x7c, 0xe7, 0xd4, 0x7c, 0xa8, 0xd8, 0x90, 0x81,
0xfc, 0x01, 0x76, 0xf3, 0x3f, 0xa6, 0xc8, 0xb1, 0x82, 0x7d, 0xf0, 0x63, 0xab, 0x30, 0xfc, 0x23,
0xa4, 0x3e, 0x34, 0x0b, 0xa9, 0x79, 0x1a, 0x85, 0xea, 0x9b, 0x6f, 0x95, 0xfc, 0x3b, 0x2a, 0xa2,
0x8c, 0xf7, 0xb4, 0x38, 0x5e, 0x1f, 0x76, 0x2e, 0x7d, 0xea, 0x64, 0xa2, 0xfd, 0xb6, 0x69, 0x25,
0x5f, 0xf7, 0xf4, 0xa0, 0x88, 0xa9, 0xef, 0xf8, 0xfe, 0xa7, 0x3f, 0xfe, 0xdb, 0xfb, 0x8e, 0xf6,
0xf5, 0xfb, 0x8e, 0xf6, 0xcd, 0xfb, 0x8e, 0xf6, 0xe5, 0x87, 0xce, 0xb3, 0xaf, 0x3f, 0x74, 0x9e,
0xfd, 0xf3, 0x43, 0xe7, 0x19, 0xc8, 0xbf, 0xfd, 0x3e, 0xd3, 0xbe, 0xd8, 0x9a, 0x04, 0x11, 0x75,
0x83, 0xa1, 0x04, 0xfa, 0xe4, 0xf6, 0xe5, 0xbb, 0x35, 0x24, 0xfb, 0xd1, 0xff, 0x02, 0x00, 0x00,
0xff, 0xff, 0xd6, 0x05, 0xf6, 0xca, 0x33, 0x14, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -1431,6 +1487,8 @@ type DocumentAPIClient interface {
GetDocumentScore(ctx context.Context, in *DocumentScore, opts ...grpc.CallOption) (*DocumentScore, error)
// 将文档一键设置为重转
SetDocumentReconvert(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
// 批量更新文档分类
SetDocumentsCategory(ctx context.Context, in *SetDocumentsCategoryRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
}
type documentAPIClient struct {
@ -1558,6 +1616,15 @@ func (c *documentAPIClient) SetDocumentReconvert(ctx context.Context, in *emptyp
return out, nil
}
func (c *documentAPIClient) SetDocumentsCategory(ctx context.Context, in *SetDocumentsCategoryRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, "/api.v1.DocumentAPI/SetDocumentsCategory", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// DocumentAPIServer is the server API for DocumentAPI service.
type DocumentAPIServer interface {
// 针对首页的文档查询
@ -1586,6 +1653,8 @@ type DocumentAPIServer interface {
GetDocumentScore(context.Context, *DocumentScore) (*DocumentScore, error)
// 将文档一键设置为重转
SetDocumentReconvert(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
// 批量更新文档分类
SetDocumentsCategory(context.Context, *SetDocumentsCategoryRequest) (*emptypb.Empty, error)
}
// UnimplementedDocumentAPIServer can be embedded to have forward compatible implementations.
@ -1631,6 +1700,9 @@ func (*UnimplementedDocumentAPIServer) GetDocumentScore(ctx context.Context, req
func (*UnimplementedDocumentAPIServer) SetDocumentReconvert(ctx context.Context, req *emptypb.Empty) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method SetDocumentReconvert not implemented")
}
func (*UnimplementedDocumentAPIServer) SetDocumentsCategory(ctx context.Context, req *SetDocumentsCategoryRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method SetDocumentsCategory not implemented")
}
func RegisterDocumentAPIServer(s *grpc.Server, srv DocumentAPIServer) {
s.RegisterService(&_DocumentAPI_serviceDesc, srv)
@ -1870,6 +1942,24 @@ func _DocumentAPI_SetDocumentReconvert_Handler(srv interface{}, ctx context.Cont
return interceptor(ctx, in, info, handler)
}
func _DocumentAPI_SetDocumentsCategory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SetDocumentsCategoryRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(DocumentAPIServer).SetDocumentsCategory(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/api.v1.DocumentAPI/SetDocumentsCategory",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(DocumentAPIServer).SetDocumentsCategory(ctx, req.(*SetDocumentsCategoryRequest))
}
return interceptor(ctx, in, info, handler)
}
var _DocumentAPI_serviceDesc = grpc.ServiceDesc{
ServiceName: "api.v1.DocumentAPI",
HandlerType: (*DocumentAPIServer)(nil),
@ -1926,6 +2016,10 @@ var _DocumentAPI_serviceDesc = grpc.ServiceDesc{
MethodName: "SetDocumentReconvert",
Handler: _DocumentAPI_SetDocumentReconvert_Handler,
},
{
MethodName: "SetDocumentsCategory",
Handler: _DocumentAPI_SetDocumentsCategory_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "api/v1/document.proto",
@ -2536,6 +2630,67 @@ func (m *GetDocumentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
func (m *SetDocumentsCategoryRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *SetDocumentsCategoryRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *SetDocumentsCategoryRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if len(m.CategoryId) > 0 {
dAtA14 := make([]byte, len(m.CategoryId)*10)
var j13 int
for _, num1 := range m.CategoryId {
num := uint64(num1)
for num >= 1<<7 {
dAtA14[j13] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j13++
}
dAtA14[j13] = uint8(num)
j13++
}
i -= j13
copy(dAtA[i:], dAtA14[:j13])
i = encodeVarintDocument(dAtA, i, uint64(j13))
i--
dAtA[i] = 0x12
}
if len(m.DocumentId) > 0 {
dAtA16 := make([]byte, len(m.DocumentId)*10)
var j15 int
for _, num1 := range m.DocumentId {
num := uint64(num1)
for num >= 1<<7 {
dAtA16[j15] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j15++
}
dAtA16[j15] = uint8(num)
j15++
}
i -= j15
copy(dAtA[i:], dAtA16[:j15])
i = encodeVarintDocument(dAtA, i, uint64(j15))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func (m *ListDocumentRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@ -2582,59 +2737,59 @@ func (m *ListDocumentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0x4a
}
if len(m.Status) > 0 {
dAtA14 := make([]byte, len(m.Status)*10)
var j13 int
dAtA18 := make([]byte, len(m.Status)*10)
var j17 int
for _, num1 := range m.Status {
num := uint64(num1)
for num >= 1<<7 {
dAtA14[j13] = uint8(uint64(num)&0x7f | 0x80)
dAtA18[j17] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j13++
j17++
}
dAtA14[j13] = uint8(num)
j13++
dAtA18[j17] = uint8(num)
j17++
}
i -= j13
copy(dAtA[i:], dAtA14[:j13])
i = encodeVarintDocument(dAtA, i, uint64(j13))
i -= j17
copy(dAtA[i:], dAtA18[:j17])
i = encodeVarintDocument(dAtA, i, uint64(j17))
i--
dAtA[i] = 0x42
}
if len(m.UserId) > 0 {
dAtA16 := make([]byte, len(m.UserId)*10)
var j15 int
dAtA20 := make([]byte, len(m.UserId)*10)
var j19 int
for _, num1 := range m.UserId {
num := uint64(num1)
for num >= 1<<7 {
dAtA16[j15] = uint8(uint64(num)&0x7f | 0x80)
dAtA20[j19] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j15++
j19++
}
dAtA16[j15] = uint8(num)
j15++
dAtA20[j19] = uint8(num)
j19++
}
i -= j15
copy(dAtA[i:], dAtA16[:j15])
i = encodeVarintDocument(dAtA, i, uint64(j15))
i -= j19
copy(dAtA[i:], dAtA20[:j19])
i = encodeVarintDocument(dAtA, i, uint64(j19))
i--
dAtA[i] = 0x3a
}
if len(m.CategoryId) > 0 {
dAtA18 := make([]byte, len(m.CategoryId)*10)
var j17 int
dAtA22 := make([]byte, len(m.CategoryId)*10)
var j21 int
for _, num1 := range m.CategoryId {
num := uint64(num1)
for num >= 1<<7 {
dAtA18[j17] = uint8(uint64(num)&0x7f | 0x80)
dAtA22[j21] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j17++
j21++
}
dAtA18[j17] = uint8(num)
j17++
dAtA22[j21] = uint8(num)
j21++
}
i -= j17
copy(dAtA[i:], dAtA18[:j17])
i = encodeVarintDocument(dAtA, i, uint64(j17))
i -= j21
copy(dAtA[i:], dAtA22[:j21])
i = encodeVarintDocument(dAtA, i, uint64(j21))
i--
dAtA[i] = 0x32
}
@ -2791,21 +2946,21 @@ func (m *CreateDocumentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
}
}
if len(m.CategoryId) > 0 {
dAtA20 := make([]byte, len(m.CategoryId)*10)
var j19 int
dAtA24 := make([]byte, len(m.CategoryId)*10)
var j23 int
for _, num1 := range m.CategoryId {
num := uint64(num1)
for num >= 1<<7 {
dAtA20[j19] = uint8(uint64(num)&0x7f | 0x80)
dAtA24[j23] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j19++
j23++
}
dAtA20[j19] = uint8(num)
j19++
dAtA24[j23] = uint8(num)
j23++
}
i -= j19
copy(dAtA[i:], dAtA20[:j19])
i = encodeVarintDocument(dAtA, i, uint64(j19))
i -= j23
copy(dAtA[i:], dAtA24[:j23])
i = encodeVarintDocument(dAtA, i, uint64(j23))
i--
dAtA[i] = 0x12
}
@ -2848,21 +3003,21 @@ func (m *SetDocumentRecommendRequest) MarshalToSizedBuffer(dAtA []byte) (int, er
dAtA[i] = 0x10
}
if len(m.Id) > 0 {
dAtA22 := make([]byte, len(m.Id)*10)
var j21 int
dAtA26 := make([]byte, len(m.Id)*10)
var j25 int
for _, num1 := range m.Id {
num := uint64(num1)
for num >= 1<<7 {
dAtA22[j21] = uint8(uint64(num)&0x7f | 0x80)
dAtA26[j25] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j21++
j25++
}
dAtA22[j21] = uint8(num)
j21++
dAtA26[j25] = uint8(num)
j25++
}
i -= j21
copy(dAtA[i:], dAtA22[:j21])
i = encodeVarintDocument(dAtA, i, uint64(j21))
i -= j25
copy(dAtA[i:], dAtA26[:j25])
i = encodeVarintDocument(dAtA, i, uint64(j25))
i--
dAtA[i] = 0xa
}
@ -3025,21 +3180,21 @@ func (m *SearchDocumentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
}
if len(m.CategoryId) > 0 {
dAtA24 := make([]byte, len(m.CategoryId)*10)
var j23 int
dAtA28 := make([]byte, len(m.CategoryId)*10)
var j27 int
for _, num1 := range m.CategoryId {
num := uint64(num1)
for num >= 1<<7 {
dAtA24[j23] = uint8(uint64(num)&0x7f | 0x80)
dAtA28[j27] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j23++
j27++
}
dAtA24[j23] = uint8(num)
j23++
dAtA28[j27] = uint8(num)
j27++
}
i -= j23
copy(dAtA[i:], dAtA24[:j23])
i = encodeVarintDocument(dAtA, i, uint64(j23))
i -= j27
copy(dAtA[i:], dAtA28[:j27])
i = encodeVarintDocument(dAtA, i, uint64(j27))
i--
dAtA[i] = 0x22
}
@ -3084,22 +3239,22 @@ func (m *DocumentScore) MarshalToSizedBuffer(dAtA []byte) (int, error) {
var l int
_ = l
if m.UpdatedAt != nil {
n25, err25 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.UpdatedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.UpdatedAt):])
if err25 != nil {
return 0, err25
n29, err29 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.UpdatedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.UpdatedAt):])
if err29 != nil {
return 0, err29
}
i -= n25
i = encodeVarintDocument(dAtA, i, uint64(n25))
i -= n29
i = encodeVarintDocument(dAtA, i, uint64(n29))
i--
dAtA[i] = 0x32
}
if m.CreatedAt != nil {
n26, err26 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.CreatedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.CreatedAt):])
if err26 != nil {
return 0, err26
n30, err30 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.CreatedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.CreatedAt):])
if err30 != nil {
return 0, err30
}
i -= n26
i = encodeVarintDocument(dAtA, i, uint64(n26))
i -= n30
i = encodeVarintDocument(dAtA, i, uint64(n30))
i--
dAtA[i] = 0x2a
}
@ -3390,6 +3545,29 @@ func (m *GetDocumentRequest) Size() (n int) {
return n
}
func (m *SetDocumentsCategoryRequest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if len(m.DocumentId) > 0 {
l = 0
for _, e := range m.DocumentId {
l += sovDocument(uint64(e))
}
n += 1 + sovDocument(uint64(l)) + l
}
if len(m.CategoryId) > 0 {
l = 0
for _, e := range m.CategoryId {
l += sovDocument(uint64(e))
}
n += 1 + sovDocument(uint64(l)) + l
}
return n
}
func (m *ListDocumentRequest) Size() (n int) {
if m == nil {
return 0
@ -4983,6 +5161,208 @@ func (m *GetDocumentRequest) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *SetDocumentsCategoryRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowDocument
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: SetDocumentsCategoryRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: SetDocumentsCategoryRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType == 0 {
var v int64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowDocument
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.DocumentId = append(m.DocumentId, v)
} else if wireType == 2 {
var packedLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowDocument
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if packedLen < 0 {
return ErrInvalidLengthDocument
}
postIndex := iNdEx + packedLen
if postIndex < 0 {
return ErrInvalidLengthDocument
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
}
elementCount = count
if elementCount != 0 && len(m.DocumentId) == 0 {
m.DocumentId = make([]int64, 0, elementCount)
}
for iNdEx < postIndex {
var v int64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowDocument
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.DocumentId = append(m.DocumentId, v)
}
} else {
return fmt.Errorf("proto: wrong wireType = %d for field DocumentId", wireType)
}
case 2:
if wireType == 0 {
var v int64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowDocument
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.CategoryId = append(m.CategoryId, v)
} else if wireType == 2 {
var packedLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowDocument
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if packedLen < 0 {
return ErrInvalidLengthDocument
}
postIndex := iNdEx + packedLen
if postIndex < 0 {
return ErrInvalidLengthDocument
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
}
elementCount = count
if elementCount != 0 && len(m.CategoryId) == 0 {
m.CategoryId = make([]int64, 0, elementCount)
}
for iNdEx < postIndex {
var v int64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowDocument
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.CategoryId = append(m.CategoryId, v)
}
} else {
return fmt.Errorf("proto: wrong wireType = %d for field CategoryId", wireType)
}
default:
iNdEx = preIndex
skippy, err := skipDocument(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthDocument
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *ListDocumentRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0

@ -476,6 +476,40 @@ func local_request_DocumentAPI_SetDocumentReconvert_0(ctx context.Context, marsh
}
func request_DocumentAPI_SetDocumentsCategory_0(ctx context.Context, marshaler runtime.Marshaler, client DocumentAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq SetDocumentsCategoryRequest
var metadata runtime.ServerMetadata
newReader, berr := utilities.IOReaderFactory(req.Body)
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.SetDocumentsCategory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_DocumentAPI_SetDocumentsCategory_0(ctx context.Context, marshaler runtime.Marshaler, server DocumentAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq SetDocumentsCategoryRequest
var metadata runtime.ServerMetadata
newReader, berr := utilities.IOReaderFactory(req.Body)
if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
}
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.SetDocumentsCategory(ctx, &protoReq)
return msg, metadata, err
}
var (
filter_RecycleAPI_ListRecycleDocument_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
)
@ -905,6 +939,29 @@ func RegisterDocumentAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux
})
mux.Handle("PUT", pattern_DocumentAPI_SetDocumentsCategory_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)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_DocumentAPI_SetDocumentsCategory_0(rctx, inboundMarshaler, server, req, pathParams)
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_DocumentAPI_SetDocumentsCategory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
return nil
}
@ -1307,6 +1364,26 @@ func RegisterDocumentAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux
})
mux.Handle("PUT", pattern_DocumentAPI_SetDocumentsCategory_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)
rctx, err := runtime.AnnotateContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_DocumentAPI_SetDocumentsCategory_0(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_DocumentAPI_SetDocumentsCategory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
return nil
}
@ -1336,6 +1413,8 @@ var (
pattern_DocumentAPI_GetDocumentScore_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "document", "score"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_DocumentAPI_SetDocumentReconvert_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "document", "reconvert"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_DocumentAPI_SetDocumentsCategory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "document", "category"}, "", runtime.AssumeColonVerbOpt(true)))
)
var (
@ -1364,6 +1443,8 @@ var (
forward_DocumentAPI_GetDocumentScore_0 = runtime.ForwardResponseMessage
forward_DocumentAPI_SetDocumentReconvert_0 = runtime.ForwardResponseMessage
forward_DocumentAPI_SetDocumentsCategory_0 = runtime.ForwardResponseMessage
)
// RegisterRecycleAPIHandlerFromEndpoint is same as RegisterRecycleAPIHandler but

@ -67,6 +67,11 @@ message GetDocumentRequest {
bool with_author = 2; //
}
message SetDocumentsCategoryRequest {
repeated int64 document_id = 1; // ID
repeated int64 category_id = 2; // ID
}
//
message ListDocumentRequest {
int64 page = 1; //
@ -256,6 +261,15 @@ service DocumentAPI {
put : '/api/v1/document/reconvert',
};
}
//
rpc SetDocumentsCategory(SetDocumentsCategoryRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
put : '/api/v1/document/category',
body : '*',
};
}
}
service RecycleAPI {

@ -786,3 +786,17 @@ func (s *DocumentAPIService) SetDocumentReconvert(ctx context.Context, req *empt
return &emptypb.Empty{}, nil
}
func (s *DocumentAPIService) SetDocumentsCategory(ctx context.Context, req *pb.SetDocumentsCategoryRequest) (res *emptypb.Empty, err error) {
_, err = s.checkPermission(ctx)
if err != nil {
return nil, err
}
err = s.dbModel.SetDocumentsCategory(req.DocumentId, req.CategoryId)
if err != nil {
return nil, status.Errorf(codes.Internal, "更新文档分类失败:%s", err.Error())
}
return &emptypb.Empty{}, nil
}

@ -292,8 +292,6 @@ func (m *DBModel) DeleteDocument(ids []int64, deletedUserId int64, deepDelete ..
}
for _, doc := range docs {
// 文档不是禁用状态,且未被逻辑删除,则需要减少用户、分类下的文档统计数量
// if doc.Status != DocumentStatusDisabled && doc.DeletedAt == nil {
if doc.DeletedAt == nil {
err = sess.Model(modelUser).Where("id = ?", doc.UserId).Update("doc_count", gorm.Expr("doc_count - ?", 1)).Error
if err != nil {
@ -765,3 +763,56 @@ func (m *DBModel) CountDocument(status ...int) (count int64, err error) {
}
return
}
func (m *DBModel) SetDocumentsCategory(documentId, categoryId []int64) (err error) {
tx := m.db.Begin()
defer func() {
if err != nil {
tx.Rollback()
} else {
tx.Commit()
}
}()
for _, id := range documentId {
// 1. 旧的文档分类,减少计数
var docCates []DocumentCategory
m.db.Model(&DocumentCategory{}).Where("document_id = ?", id).Find(&docCates)
for _, cate := range docCates {
err = tx.Model(&Category{}).Where("id = ?", cate.CategoryId).Update("doc_count", gorm.Expr("doc_count - ?", 1)).Error
if err != nil {
m.logger.Error("SetDocumentsCategory", zap.Error(err))
return
}
}
// 2. 删除旧的分类
err = tx.Model(&DocumentCategory{}).Where("document_id = ?", id).Delete(&DocumentCategory{}).Error
if err != nil {
m.logger.Error("SetDocumentsCategory", zap.Error(err))
return
}
// 3. 添加新的分类
docCates = []DocumentCategory{}
for _, cid := range categoryId {
docCates = append(docCates, DocumentCategory{
DocumentId: id,
CategoryId: cid,
})
}
err = tx.Create(&docCates).Error
if err != nil {
m.logger.Error("SetDocumentsCategory", zap.Error(err))
return
}
// 4. 更新文档分类统计
err = tx.Model(&Category{}).Where("id in (?)", categoryId).Update("doc_count", gorm.Expr("doc_count + ?", 1)).Error
if err != nil {
m.logger.Error("SetDocumentsCategory", zap.Error(err))
return
}
}
return
}

@ -135,3 +135,11 @@ export const setDocumentScore = (data) => {
data,
})
}
export const setDocumentsCategory = (data) => {
return service({
url: '/api/v1/document/category',
method: 'put',
data,
})
}

@ -0,0 +1,112 @@
<template>
<div class="com-form-update-documents-category">
<el-form ref="form" label-position="top" label-width="80px" :model="form">
<el-form-item
label="新文档分类"
prop="category_id"
:rules="[
{ required: true, trigger: 'blur', message: '请选择新的文档分类' },
]"
>
<el-cascader
v-model="form.category_id"
:options="categoryTrees"
:filterable="true"
:props="{
checkStrictly: true,
expandTrigger: 'hover',
label: 'title',
value: 'id',
}"
clearable
placeholder="请选择新的文档分类"
></el-cascader>
</el-form-item>
<el-form-item label="文档列表" class="document-list">
<ul>
<li v-for="document in documents" :key="'doc-' + document.id">
{{ document.title }}
</li>
</ul>
</el-form-item>
<el-form-item>
<el-button
type="primary"
class="btn-block"
icon="el-icon-check"
@click="setDocumentsCategory"
>提交</el-button
>
</el-form-item>
</el-form>
</div>
</template>
<script>
import { setDocumentsCategory } from '~/api/document'
import { mapGetters } from 'vuex'
export default {
name: 'FormUpdateDocumentsCategory',
props: {
//
categoryTrees: {
type: Array,
default: () => {
return []
},
},
documents: {
type: Array,
default: () => {
return []
},
},
},
data() {
return {
form: {
category_id: [],
document_id: [],
},
}
},
computed: {
...mapGetters('setting', ['settings']),
},
created() {},
methods: {
async setDocumentsCategory() {
this.$refs.form.validate(async (valid) => {
if (valid) {
this.form.document_id = this.documents.map((item) => item.id)
const res = await setDocumentsCategory(this.form)
console.log(res)
if (res.status === 200) {
this.$message.success('修改成功')
this.$emit('success', res.data)
}
}
})
},
},
}
</script>
<style lang="scss">
.com-form-update-documents-category {
.document-list {
ul,
li {
list-style: none;
margin: 0;
padding: 0;
}
ul {
max-height: 300px;
overflow: auto;
}
li {
line-height: 30px;
color: #777;
}
}
}
</style>

@ -28,6 +28,22 @@
>
</el-tooltip>
</el-form-item>
<el-form-item>
<el-tooltip
class="item"
effect="dark"
content="批量修改选中的文档分类"
placement="top"
>
<el-button
type="success"
@click="batchUpdateDocumentsCategory"
:disabled="selectedRow.length === 0"
icon="el-icon-edit"
>批量分类</el-button
>
</el-tooltip>
</el-form-item>
</template>
</FormSearch>
</el-card>
@ -105,6 +121,18 @@
@success="formSuccess"
/>
</el-dialog>
<el-dialog
title="批量分类"
width="520px"
:visible.sync="formDocumentsCategoryVisible"
>
<FormUpdateDocumentsCategory
v-if="formDocumentsCategoryVisible"
:category-trees="trees"
:documents="categoryDocuments"
@success="formSuccess"
/>
</el-dialog>
<el-dialog
title="推荐设置"
:visible.sync="formDocumentRecommendVisible"
@ -155,6 +183,8 @@ export default {
documentStatusOptions,
boolOptions,
document: { id: 0 },
formDocumentsCategoryVisible: false,
categoryDocuments: [],
}
},
head() {
@ -302,6 +332,7 @@ export default {
formSuccess() {
this.formVisible = false
this.formDocumentRecommendVisible = false
this.formDocumentsCategoryVisible = false
this.listDocument()
},
batchDelete() {
@ -326,6 +357,10 @@ export default {
})
.catch(() => {})
},
batchUpdateDocumentsCategory() {
this.categoryDocuments = this.selectedRow
this.formDocumentsCategoryVisible = true
},
deleteRow(row) {
this.$confirm(
`您确定要删除文档【${row.title}】吗?删除之后将会进入到回收站,可以在回收站中恢复。`,

Loading…
Cancel
Save