diff --git a/genproto/v1/gw/rivalservice.pb.gw.go b/genproto/v1/gw/rivalservice.pb.gw.go index b65bcef..f2848d7 100644 --- a/genproto/v1/gw/rivalservice.pb.gw.go +++ b/genproto/v1/gw/rivalservice.pb.gw.go @@ -13,9 +13,9 @@ import ( "io" "net/http" - extV1 "github.com/superjcd/rivalservice/genproto/v1" "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + extV1 "github.com/superjcd/rivalservice/genproto/v1" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" @@ -262,7 +262,7 @@ func RegisterRivalServiceHandlerServer(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.v1.RivalService/CreateRival", runtime.WithHTTPPathPattern("/v1/rivals")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/CreateRival", runtime.WithHTTPPathPattern("/v1/rivals")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -287,7 +287,7 @@ func RegisterRivalServiceHandlerServer(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.v1.RivalService/ListRival", runtime.WithHTTPPathPattern("/v1/rivals")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/ListRival", runtime.WithHTTPPathPattern("/v1/rivals")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -312,7 +312,7 @@ func RegisterRivalServiceHandlerServer(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.v1.RivalService/DeleteRival", runtime.WithHTTPPathPattern("/v1/rivals")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/DeleteRival", runtime.WithHTTPPathPattern("/v1/rivals")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -337,7 +337,7 @@ func RegisterRivalServiceHandlerServer(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.v1.RivalService/AppendRivalChanges", runtime.WithHTTPPathPattern("/v1/rivals/changes")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/AppendRivalChanges", runtime.WithHTTPPathPattern("/v1/rivals/changes")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -362,7 +362,7 @@ func RegisterRivalServiceHandlerServer(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.v1.RivalService/AppendRivalProductInactiveDetail", runtime.WithHTTPPathPattern("/v1/rivals/details/inactive")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/AppendRivalProductInactiveDetail", runtime.WithHTTPPathPattern("/v1/rivals/details/inactive")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -387,7 +387,7 @@ func RegisterRivalServiceHandlerServer(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/proto.v1.RivalService/AppendRivalProductActiveDetail", runtime.WithHTTPPathPattern("/v1/rivals/details/active")) + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/AppendRivalProductActiveDetail", runtime.WithHTTPPathPattern("/v1/rivals/details/active")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -451,7 +451,7 @@ func RegisterRivalServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.v1.RivalService/CreateRival", runtime.WithHTTPPathPattern("/v1/rivals")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/CreateRival", runtime.WithHTTPPathPattern("/v1/rivals")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -473,7 +473,7 @@ func RegisterRivalServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.v1.RivalService/ListRival", runtime.WithHTTPPathPattern("/v1/rivals")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/ListRival", runtime.WithHTTPPathPattern("/v1/rivals")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -495,7 +495,7 @@ func RegisterRivalServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.v1.RivalService/DeleteRival", runtime.WithHTTPPathPattern("/v1/rivals")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/DeleteRival", runtime.WithHTTPPathPattern("/v1/rivals")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -517,7 +517,7 @@ func RegisterRivalServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.v1.RivalService/AppendRivalChanges", runtime.WithHTTPPathPattern("/v1/rivals/changes")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/AppendRivalChanges", runtime.WithHTTPPathPattern("/v1/rivals/changes")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -539,7 +539,7 @@ func RegisterRivalServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.v1.RivalService/AppendRivalProductInactiveDetail", runtime.WithHTTPPathPattern("/v1/rivals/details/inactive")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/AppendRivalProductInactiveDetail", runtime.WithHTTPPathPattern("/v1/rivals/details/inactive")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -561,7 +561,7 @@ func RegisterRivalServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/proto.v1.RivalService/AppendRivalProductActiveDetail", runtime.WithHTTPPathPattern("/v1/rivals/details/active")) + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/superjcd.rivalservice.v1.RivalService/AppendRivalProductActiveDetail", runtime.WithHTTPPathPattern("/v1/rivals/details/active")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return diff --git a/genproto/v1/rivalservice.pb.go b/genproto/v1/rivalservice.pb.go index c1f7719..e4f8cdd 100644 --- a/genproto/v1/rivalservice.pb.go +++ b/genproto/v1/rivalservice.pb.go @@ -406,7 +406,7 @@ type CreateRivalResponse struct { unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=proto.v1.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=superjcd.rivalservice.v1.Status" json:"status,omitempty"` } func (x *CreateRivalResponse) Reset() { @@ -612,7 +612,7 @@ type ListRivalResponse struct { unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=proto.v1.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=superjcd.rivalservice.v1.Status" json:"status,omitempty"` Rivals []*Rival `protobuf:"bytes,3,rep,name=rivals,proto3" json:"rivals,omitempty"` } @@ -746,7 +746,7 @@ type DeleteRivalResponse struct { unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=proto.v1.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=superjcd.rivalservice.v1.Status" json:"status,omitempty"` } func (x *DeleteRivalResponse) Reset() { @@ -802,6 +802,7 @@ type AppendRivalChangesRequest struct { OldDate string `protobuf:"bytes,1,opt,name=old_date,json=oldDate,proto3" json:"old_date,omitempty"` NewDate string `protobuf:"bytes,2,opt,name=new_date,json=newDate,proto3" json:"new_date,omitempty"` + Field string `protobuf:"bytes,3,opt,name=field,proto3" json:"field,omitempty"` } func (x *AppendRivalChangesRequest) Reset() { @@ -850,13 +851,20 @@ func (x *AppendRivalChangesRequest) GetNewDate() string { return "" } +func (x *AppendRivalChangesRequest) GetField() string { + if x != nil { + return x.Field + } + return "" +} + type AppendRivalChangesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=proto.v1.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=superjcd.rivalservice.v1.Status" json:"status,omitempty"` } func (x *AppendRivalChangesResponse) Reset() { @@ -913,8 +921,9 @@ type ListRivalChangesRequest struct { User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` CreateDate string `protobuf:"bytes,3,opt,name=create_date,json=createDate,proto3" json:"create_date,omitempty"` - Offset int32 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"` - Limit int32 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty"` + Field string `protobuf:"bytes,4,opt,name=field,proto3" json:"field,omitempty"` + Offset int32 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"` + Limit int32 `protobuf:"varint,6,opt,name=limit,proto3" json:"limit,omitempty"` } func (x *ListRivalChangesRequest) Reset() { @@ -970,6 +979,13 @@ func (x *ListRivalChangesRequest) GetCreateDate() string { return "" } +func (x *ListRivalChangesRequest) GetField() string { + if x != nil { + return x.Field + } + return "" +} + func (x *ListRivalChangesRequest) GetOffset() int32 { if x != nil { return x.Offset @@ -1077,7 +1093,7 @@ type ListRivalChangesResponse struct { unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=proto.v1.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=superjcd.rivalservice.v1.Status" json:"status,omitempty"` RivalChanges []*RivalChange `protobuf:"bytes,3,rep,name=rival_changes,json=rivalChanges,proto3" json:"rival_changes,omitempty"` } @@ -1139,11 +1155,7 @@ type AppendRivalProductInactiveDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Asin string `protobuf:"bytes,1,opt,name=asin,proto3" json:"asin,omitempty"` - Country string `protobuf:"bytes,2,opt,name=country,proto3" json:"country,omitempty"` - Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` - BulletPoints string `protobuf:"bytes,4,opt,name=bullet_points,json=bulletPoints,proto3" json:"bullet_points,omitempty"` - CreateDate string `protobuf:"bytes,5,opt,name=create_date,json=createDate,proto3" json:"create_date,omitempty"` + Details []*AmzProductInactivateDetail `protobuf:"bytes,1,rep,name=details,proto3" json:"details,omitempty"` } func (x *AppendRivalProductInactiveDetailRequest) Reset() { @@ -1178,39 +1190,11 @@ func (*AppendRivalProductInactiveDetailRequest) Descriptor() ([]byte, []int) { return file_rivalservice_proto_rawDescGZIP(), []int{14} } -func (x *AppendRivalProductInactiveDetailRequest) GetAsin() string { - if x != nil { - return x.Asin - } - return "" -} - -func (x *AppendRivalProductInactiveDetailRequest) GetCountry() string { - if x != nil { - return x.Country - } - return "" -} - -func (x *AppendRivalProductInactiveDetailRequest) GetTitle() string { - if x != nil { - return x.Title - } - return "" -} - -func (x *AppendRivalProductInactiveDetailRequest) GetBulletPoints() string { +func (x *AppendRivalProductInactiveDetailRequest) GetDetails() []*AmzProductInactivateDetail { if x != nil { - return x.BulletPoints - } - return "" -} - -func (x *AppendRivalProductInactiveDetailRequest) GetCreateDate() string { - if x != nil { - return x.CreateDate + return x.Details } - return "" + return nil } type AppendRivalProductInactiveDetailResponse struct { @@ -1219,7 +1203,7 @@ type AppendRivalProductInactiveDetailResponse struct { unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=proto.v1.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=superjcd.rivalservice.v1.Status" json:"status,omitempty"` } func (x *AppendRivalProductInactiveDetailResponse) Reset() { @@ -1273,7 +1257,7 @@ type AppendRivalProductActiveDetailRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Details *AmzProductActiveDetail `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"` + Details []*AmzProductActiveDetail `protobuf:"bytes,1,rep,name=details,proto3" json:"details,omitempty"` } func (x *AppendRivalProductActiveDetailRequest) Reset() { @@ -1308,7 +1292,7 @@ func (*AppendRivalProductActiveDetailRequest) Descriptor() ([]byte, []int) { return file_rivalservice_proto_rawDescGZIP(), []int{16} } -func (x *AppendRivalProductActiveDetailRequest) GetDetails() *AmzProductActiveDetail { +func (x *AppendRivalProductActiveDetailRequest) GetDetails() []*AmzProductActiveDetail { if x != nil { return x.Details } @@ -1321,7 +1305,7 @@ type AppendRivalProductActiveDetailResponse struct { unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=proto.v1.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=superjcd.rivalservice.v1.Status" json:"status,omitempty"` } func (x *AppendRivalProductActiveDetailResponse) Reset() { @@ -1423,7 +1407,7 @@ type DeleteRivalChangesResponse struct { unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=proto.v1.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=superjcd.rivalservice.v1.Status" json:"status,omitempty"` } func (x *DeleteRivalChangesResponse) Reset() { @@ -1525,7 +1509,7 @@ type DeleteRivalInactiveDetailResponse struct { unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=proto.v1.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=superjcd.rivalservice.v1.Status" json:"status,omitempty"` } func (x *DeleteRivalInactiveDetailResponse) Reset() { @@ -1627,7 +1611,7 @@ type DeleteRivalActiveDetailResponse struct { unknownFields protoimpl.UnknownFields Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=proto.v1.Status" json:"status,omitempty"` + Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=superjcd.rivalservice.v1.Status" json:"status,omitempty"` } func (x *DeleteRivalActiveDetailResponse) Reset() { @@ -1680,7 +1664,8 @@ var File_rivalservice_proto protoreflect.FileDescriptor var file_rivalservice_proto_rawDesc = []byte{ 0x0a, 0x12, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x22, 0xa6, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, + 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x22, 0xa6, 0x01, 0x0a, 0x1a, 0x41, 0x6d, 0x7a, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x73, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x73, 0x69, @@ -1733,11 +1718,12 @@ var file_rivalservice_proto_rawDesc = []byte{ 0x73, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x69, 0x76, 0x61, 0x6c, 0x73, 0x22, 0x51, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x69, 0x76, 0x61, 0x6c, 0x73, 0x22, 0x61, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, + 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, @@ -1753,198 +1739,229 @@ var file_rivalservice_proto_rawDesc = []byte{ 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x73, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x73, 0x69, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x69, - 0x76, 0x61, 0x6c, 0x41, 0x73, 0x69, 0x6e, 0x22, 0x78, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x0a, 0x06, 0x72, 0x69, 0x76, 0x61, - 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x06, 0x72, 0x69, 0x76, 0x61, 0x6c, - 0x73, 0x22, 0x6e, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x61, - 0x73, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x73, 0x69, 0x6e, 0x12, + 0x76, 0x61, 0x6c, 0x41, 0x73, 0x69, 0x6e, 0x22, 0x98, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x20, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x06, 0x72, 0x69, 0x76, + 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x75, 0x70, 0x65, + 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x06, 0x72, 0x69, 0x76, 0x61, + 0x6c, 0x73, 0x22, 0x6e, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, + 0x61, 0x73, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x73, 0x69, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x69, + 0x76, 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x72, 0x69, 0x76, 0x61, + 0x6c, 0x73, 0x22, 0x61, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x75, + 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x67, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, + 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6c, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6e, 0x65, 0x77, 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x68, + 0x0a, 0x1a, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, + 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xac, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x0b, 0x52, 0x69, 0x76, 0x61, + 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x79, 0x5f, 0x61, 0x73, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x79, 0x41, 0x73, 0x69, 0x6e, + 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x41, 0x73, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x69, 0x76, - 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x72, 0x69, 0x76, 0x61, 0x6c, - 0x73, 0x22, 0x51, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x51, 0x0a, 0x19, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, - 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6c, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x6e, 0x65, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6e, 0x65, 0x77, 0x44, 0x61, 0x74, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x41, 0x70, 0x70, 0x65, 0x6e, - 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, + 0x1b, 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6f, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6e, 0x65, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x18, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, + 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x4a, 0x0a, 0x0d, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x75, 0x70, 0x65, + 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x0c, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x79, + 0x0a, 0x27, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x07, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x75, 0x70, + 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x7a, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x76, 0x0a, 0x28, 0x41, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, + 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, + 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x96, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x0b, 0x52, - 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x79, - 0x5f, 0x61, 0x73, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x79, 0x41, - 0x73, 0x69, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x69, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x41, 0x73, - 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, - 0x18, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x0c, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x27, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, - 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x61, 0x73, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x73, 0x69, - 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x66, 0x0a, 0x28, 0x41, 0x70, 0x70, 0x65, 0x6e, + 0x73, 0x22, 0x73, 0x0a, 0x25, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x07, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x75, + 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x7a, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x07, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x74, 0x0a, 0x26, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, + 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, + 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x43, 0x0a, 0x19, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, + 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x22, 0x68, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, + 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4a, 0x0a, 0x20, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x6f, 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, + 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x1e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, + 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x65, 0x22, 0x6d, 0x0a, 0x1f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, + 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x2a, 0x22, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, + 0x75, 0x72, 0x65, 0x10, 0x01, 0x32, 0xd0, 0x0a, 0x0a, 0x0c, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6a, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x69, 0x76, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, + 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, + 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x64, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x12, + 0x2a, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x75, + 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x12, 0x2c, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, + 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, + 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, + 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x73, 0x75, 0x70, + 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, + 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x34, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, + 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, + 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x31, 0x2e, 0x73, 0x75, 0x70, 0x65, + 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x73, + 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, + 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x81, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, + 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x73, 0x75, 0x70, 0x65, + 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, + 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xab, 0x01, 0x0a, 0x20, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x63, 0x0a, 0x25, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x7a, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x07, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x22, 0x64, 0x0a, 0x26, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, - 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x28, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x43, 0x0a, 0x19, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, - 0x58, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x28, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4a, 0x0a, 0x20, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, - 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0x5f, 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x69, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x48, 0x0a, 0x1e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x69, 0x76, 0x61, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x22, 0x5d, 0x0a, 0x1f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, - 0x22, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, - 0x65, 0x10, 0x01, 0x32, 0x8d, 0x08, 0x0a, 0x0c, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x69, - 0x76, 0x61, 0x6c, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x44, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x12, 0x1a, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, - 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x69, 0x76, 0x61, 0x6c, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, - 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, - 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x61, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, - 0x61, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x20, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, - 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, - 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x41, 0x2e, 0x73, 0x75, + 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x76, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, - 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2a, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, + 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, + 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x69, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x12, 0x3a, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, + 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, + 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, - 0x6c, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x85, 0x01, 0x0a, 0x1e, 0x41, 0x70, - 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2f, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, - 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, - 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x70, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x28, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, - 0x76, 0x61, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x48, 0x6f, 0x6f, 0x59, 0x61, 0x2d, 0x42, 0x69, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2f, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa5, 0x01, + 0x0a, 0x1e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x3f, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, + 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, + 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x40, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, + 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x90, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x69, 0x76, 0x61, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x12, 0x38, 0x2e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, + 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, 0x61, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x73, 0x75, + 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2e, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x69, 0x76, + 0x61, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x6a, 0x63, 0x64, 0x2f, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } @@ -1964,71 +1981,72 @@ func file_rivalservice_proto_rawDescGZIP() []byte { var file_rivalservice_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_rivalservice_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_rivalservice_proto_goTypes = []interface{}{ - (Status)(0), // 0: proto.v1.Status - (*AmzProductInactivateDetail)(nil), // 1: proto.v1.AmzProductInactivateDetail - (*AmzProductActiveDetail)(nil), // 2: proto.v1.AmzProductActiveDetail - (*CreateRivalRequest)(nil), // 3: proto.v1.CreateRivalRequest - (*CreateRivalResponse)(nil), // 4: proto.v1.CreateRivalResponse - (*ListRivalRequest)(nil), // 5: proto.v1.ListRivalRequest - (*Rival)(nil), // 6: proto.v1.Rival - (*ListRivalResponse)(nil), // 7: proto.v1.ListRivalResponse - (*DeleteRivalRequest)(nil), // 8: proto.v1.DeleteRivalRequest - (*DeleteRivalResponse)(nil), // 9: proto.v1.DeleteRivalResponse - (*AppendRivalChangesRequest)(nil), // 10: proto.v1.AppendRivalChangesRequest - (*AppendRivalChangesResponse)(nil), // 11: proto.v1.AppendRivalChangesResponse - (*ListRivalChangesRequest)(nil), // 12: proto.v1.ListRivalChangesRequest - (*RivalChange)(nil), // 13: proto.v1.RivalChange - (*ListRivalChangesResponse)(nil), // 14: proto.v1.ListRivalChangesResponse - (*AppendRivalProductInactiveDetailRequest)(nil), // 15: proto.v1.AppendRivalProductInactiveDetailRequest - (*AppendRivalProductInactiveDetailResponse)(nil), // 16: proto.v1.AppendRivalProductInactiveDetailResponse - (*AppendRivalProductActiveDetailRequest)(nil), // 17: proto.v1.AppendRivalProductActiveDetailRequest - (*AppendRivalProductActiveDetailResponse)(nil), // 18: proto.v1.AppendRivalProductActiveDetailResponse - (*DeleteRivalChangesRequest)(nil), // 19: proto.v1.DeleteRivalChangesRequest - (*DeleteRivalChangesResponse)(nil), // 20: proto.v1.DeleteRivalChangesResponse - (*DeleteRivalInactiveDetailRequest)(nil), // 21: proto.v1.DeleteRivalInactiveDetailRequest - (*DeleteRivalInactiveDetailResponse)(nil), // 22: proto.v1.DeleteRivalInactiveDetailResponse - (*DeleteRivalActiveDetailRequest)(nil), // 23: proto.v1.DeleteRivalActiveDetailRequest - (*DeleteRivalActiveDetailResponse)(nil), // 24: proto.v1.DeleteRivalActiveDetailResponse + (Status)(0), // 0: superjcd.rivalservice.v1.Status + (*AmzProductInactivateDetail)(nil), // 1: superjcd.rivalservice.v1.AmzProductInactivateDetail + (*AmzProductActiveDetail)(nil), // 2: superjcd.rivalservice.v1.AmzProductActiveDetail + (*CreateRivalRequest)(nil), // 3: superjcd.rivalservice.v1.CreateRivalRequest + (*CreateRivalResponse)(nil), // 4: superjcd.rivalservice.v1.CreateRivalResponse + (*ListRivalRequest)(nil), // 5: superjcd.rivalservice.v1.ListRivalRequest + (*Rival)(nil), // 6: superjcd.rivalservice.v1.Rival + (*ListRivalResponse)(nil), // 7: superjcd.rivalservice.v1.ListRivalResponse + (*DeleteRivalRequest)(nil), // 8: superjcd.rivalservice.v1.DeleteRivalRequest + (*DeleteRivalResponse)(nil), // 9: superjcd.rivalservice.v1.DeleteRivalResponse + (*AppendRivalChangesRequest)(nil), // 10: superjcd.rivalservice.v1.AppendRivalChangesRequest + (*AppendRivalChangesResponse)(nil), // 11: superjcd.rivalservice.v1.AppendRivalChangesResponse + (*ListRivalChangesRequest)(nil), // 12: superjcd.rivalservice.v1.ListRivalChangesRequest + (*RivalChange)(nil), // 13: superjcd.rivalservice.v1.RivalChange + (*ListRivalChangesResponse)(nil), // 14: superjcd.rivalservice.v1.ListRivalChangesResponse + (*AppendRivalProductInactiveDetailRequest)(nil), // 15: superjcd.rivalservice.v1.AppendRivalProductInactiveDetailRequest + (*AppendRivalProductInactiveDetailResponse)(nil), // 16: superjcd.rivalservice.v1.AppendRivalProductInactiveDetailResponse + (*AppendRivalProductActiveDetailRequest)(nil), // 17: superjcd.rivalservice.v1.AppendRivalProductActiveDetailRequest + (*AppendRivalProductActiveDetailResponse)(nil), // 18: superjcd.rivalservice.v1.AppendRivalProductActiveDetailResponse + (*DeleteRivalChangesRequest)(nil), // 19: superjcd.rivalservice.v1.DeleteRivalChangesRequest + (*DeleteRivalChangesResponse)(nil), // 20: superjcd.rivalservice.v1.DeleteRivalChangesResponse + (*DeleteRivalInactiveDetailRequest)(nil), // 21: superjcd.rivalservice.v1.DeleteRivalInactiveDetailRequest + (*DeleteRivalInactiveDetailResponse)(nil), // 22: superjcd.rivalservice.v1.DeleteRivalInactiveDetailResponse + (*DeleteRivalActiveDetailRequest)(nil), // 23: superjcd.rivalservice.v1.DeleteRivalActiveDetailRequest + (*DeleteRivalActiveDetailResponse)(nil), // 24: superjcd.rivalservice.v1.DeleteRivalActiveDetailResponse } var file_rivalservice_proto_depIdxs = []int32{ - 0, // 0: proto.v1.CreateRivalResponse.status:type_name -> proto.v1.Status - 0, // 1: proto.v1.ListRivalResponse.status:type_name -> proto.v1.Status - 6, // 2: proto.v1.ListRivalResponse.rivals:type_name -> proto.v1.Rival - 0, // 3: proto.v1.DeleteRivalResponse.status:type_name -> proto.v1.Status - 0, // 4: proto.v1.AppendRivalChangesResponse.status:type_name -> proto.v1.Status - 0, // 5: proto.v1.ListRivalChangesResponse.status:type_name -> proto.v1.Status - 13, // 6: proto.v1.ListRivalChangesResponse.rival_changes:type_name -> proto.v1.RivalChange - 0, // 7: proto.v1.AppendRivalProductInactiveDetailResponse.status:type_name -> proto.v1.Status - 2, // 8: proto.v1.AppendRivalProductActiveDetailRequest.details:type_name -> proto.v1.AmzProductActiveDetail - 0, // 9: proto.v1.AppendRivalProductActiveDetailResponse.status:type_name -> proto.v1.Status - 0, // 10: proto.v1.DeleteRivalChangesResponse.status:type_name -> proto.v1.Status - 0, // 11: proto.v1.DeleteRivalInactiveDetailResponse.status:type_name -> proto.v1.Status - 0, // 12: proto.v1.DeleteRivalActiveDetailResponse.status:type_name -> proto.v1.Status - 3, // 13: proto.v1.RivalService.CreateRival:input_type -> proto.v1.CreateRivalRequest - 5, // 14: proto.v1.RivalService.ListRival:input_type -> proto.v1.ListRivalRequest - 8, // 15: proto.v1.RivalService.DeleteRival:input_type -> proto.v1.DeleteRivalRequest - 10, // 16: proto.v1.RivalService.AppendRivalChanges:input_type -> proto.v1.AppendRivalChangesRequest - 12, // 17: proto.v1.RivalService.ListRivalChanges:input_type -> proto.v1.ListRivalChangesRequest - 19, // 18: proto.v1.RivalService.DeleteRivalChanges:input_type -> proto.v1.DeleteRivalChangesRequest - 15, // 19: proto.v1.RivalService.AppendRivalProductInactiveDetail:input_type -> proto.v1.AppendRivalProductInactiveDetailRequest - 21, // 20: proto.v1.RivalService.DeleteRivalInactiveDetail:input_type -> proto.v1.DeleteRivalInactiveDetailRequest - 17, // 21: proto.v1.RivalService.AppendRivalProductActiveDetail:input_type -> proto.v1.AppendRivalProductActiveDetailRequest - 23, // 22: proto.v1.RivalService.DeleteRivalActiveDetail:input_type -> proto.v1.DeleteRivalActiveDetailRequest - 4, // 23: proto.v1.RivalService.CreateRival:output_type -> proto.v1.CreateRivalResponse - 7, // 24: proto.v1.RivalService.ListRival:output_type -> proto.v1.ListRivalResponse - 9, // 25: proto.v1.RivalService.DeleteRival:output_type -> proto.v1.DeleteRivalResponse - 11, // 26: proto.v1.RivalService.AppendRivalChanges:output_type -> proto.v1.AppendRivalChangesResponse - 14, // 27: proto.v1.RivalService.ListRivalChanges:output_type -> proto.v1.ListRivalChangesResponse - 20, // 28: proto.v1.RivalService.DeleteRivalChanges:output_type -> proto.v1.DeleteRivalChangesResponse - 16, // 29: proto.v1.RivalService.AppendRivalProductInactiveDetail:output_type -> proto.v1.AppendRivalProductInactiveDetailResponse - 22, // 30: proto.v1.RivalService.DeleteRivalInactiveDetail:output_type -> proto.v1.DeleteRivalInactiveDetailResponse - 18, // 31: proto.v1.RivalService.AppendRivalProductActiveDetail:output_type -> proto.v1.AppendRivalProductActiveDetailResponse - 24, // 32: proto.v1.RivalService.DeleteRivalActiveDetail:output_type -> proto.v1.DeleteRivalActiveDetailResponse - 23, // [23:33] is the sub-list for method output_type - 13, // [13:23] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name + 0, // 0: superjcd.rivalservice.v1.CreateRivalResponse.status:type_name -> superjcd.rivalservice.v1.Status + 0, // 1: superjcd.rivalservice.v1.ListRivalResponse.status:type_name -> superjcd.rivalservice.v1.Status + 6, // 2: superjcd.rivalservice.v1.ListRivalResponse.rivals:type_name -> superjcd.rivalservice.v1.Rival + 0, // 3: superjcd.rivalservice.v1.DeleteRivalResponse.status:type_name -> superjcd.rivalservice.v1.Status + 0, // 4: superjcd.rivalservice.v1.AppendRivalChangesResponse.status:type_name -> superjcd.rivalservice.v1.Status + 0, // 5: superjcd.rivalservice.v1.ListRivalChangesResponse.status:type_name -> superjcd.rivalservice.v1.Status + 13, // 6: superjcd.rivalservice.v1.ListRivalChangesResponse.rival_changes:type_name -> superjcd.rivalservice.v1.RivalChange + 1, // 7: superjcd.rivalservice.v1.AppendRivalProductInactiveDetailRequest.details:type_name -> superjcd.rivalservice.v1.AmzProductInactivateDetail + 0, // 8: superjcd.rivalservice.v1.AppendRivalProductInactiveDetailResponse.status:type_name -> superjcd.rivalservice.v1.Status + 2, // 9: superjcd.rivalservice.v1.AppendRivalProductActiveDetailRequest.details:type_name -> superjcd.rivalservice.v1.AmzProductActiveDetail + 0, // 10: superjcd.rivalservice.v1.AppendRivalProductActiveDetailResponse.status:type_name -> superjcd.rivalservice.v1.Status + 0, // 11: superjcd.rivalservice.v1.DeleteRivalChangesResponse.status:type_name -> superjcd.rivalservice.v1.Status + 0, // 12: superjcd.rivalservice.v1.DeleteRivalInactiveDetailResponse.status:type_name -> superjcd.rivalservice.v1.Status + 0, // 13: superjcd.rivalservice.v1.DeleteRivalActiveDetailResponse.status:type_name -> superjcd.rivalservice.v1.Status + 3, // 14: superjcd.rivalservice.v1.RivalService.CreateRival:input_type -> superjcd.rivalservice.v1.CreateRivalRequest + 5, // 15: superjcd.rivalservice.v1.RivalService.ListRival:input_type -> superjcd.rivalservice.v1.ListRivalRequest + 8, // 16: superjcd.rivalservice.v1.RivalService.DeleteRival:input_type -> superjcd.rivalservice.v1.DeleteRivalRequest + 10, // 17: superjcd.rivalservice.v1.RivalService.AppendRivalChanges:input_type -> superjcd.rivalservice.v1.AppendRivalChangesRequest + 12, // 18: superjcd.rivalservice.v1.RivalService.ListRivalChanges:input_type -> superjcd.rivalservice.v1.ListRivalChangesRequest + 19, // 19: superjcd.rivalservice.v1.RivalService.DeleteRivalChanges:input_type -> superjcd.rivalservice.v1.DeleteRivalChangesRequest + 15, // 20: superjcd.rivalservice.v1.RivalService.AppendRivalProductInactiveDetail:input_type -> superjcd.rivalservice.v1.AppendRivalProductInactiveDetailRequest + 21, // 21: superjcd.rivalservice.v1.RivalService.DeleteRivalInactiveDetail:input_type -> superjcd.rivalservice.v1.DeleteRivalInactiveDetailRequest + 17, // 22: superjcd.rivalservice.v1.RivalService.AppendRivalProductActiveDetail:input_type -> superjcd.rivalservice.v1.AppendRivalProductActiveDetailRequest + 23, // 23: superjcd.rivalservice.v1.RivalService.DeleteRivalActiveDetail:input_type -> superjcd.rivalservice.v1.DeleteRivalActiveDetailRequest + 4, // 24: superjcd.rivalservice.v1.RivalService.CreateRival:output_type -> superjcd.rivalservice.v1.CreateRivalResponse + 7, // 25: superjcd.rivalservice.v1.RivalService.ListRival:output_type -> superjcd.rivalservice.v1.ListRivalResponse + 9, // 26: superjcd.rivalservice.v1.RivalService.DeleteRival:output_type -> superjcd.rivalservice.v1.DeleteRivalResponse + 11, // 27: superjcd.rivalservice.v1.RivalService.AppendRivalChanges:output_type -> superjcd.rivalservice.v1.AppendRivalChangesResponse + 14, // 28: superjcd.rivalservice.v1.RivalService.ListRivalChanges:output_type -> superjcd.rivalservice.v1.ListRivalChangesResponse + 20, // 29: superjcd.rivalservice.v1.RivalService.DeleteRivalChanges:output_type -> superjcd.rivalservice.v1.DeleteRivalChangesResponse + 16, // 30: superjcd.rivalservice.v1.RivalService.AppendRivalProductInactiveDetail:output_type -> superjcd.rivalservice.v1.AppendRivalProductInactiveDetailResponse + 22, // 31: superjcd.rivalservice.v1.RivalService.DeleteRivalInactiveDetail:output_type -> superjcd.rivalservice.v1.DeleteRivalInactiveDetailResponse + 18, // 32: superjcd.rivalservice.v1.RivalService.AppendRivalProductActiveDetail:output_type -> superjcd.rivalservice.v1.AppendRivalProductActiveDetailResponse + 24, // 33: superjcd.rivalservice.v1.RivalService.DeleteRivalActiveDetail:output_type -> superjcd.rivalservice.v1.DeleteRivalActiveDetailResponse + 24, // [24:34] is the sub-list for method output_type + 14, // [14:24] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_rivalservice_proto_init() } diff --git a/genproto/v1/rivalservice_grpc.pb.go b/genproto/v1/rivalservice_grpc.pb.go index 044aaa7..7073c36 100644 --- a/genproto/v1/rivalservice_grpc.pb.go +++ b/genproto/v1/rivalservice_grpc.pb.go @@ -19,16 +19,16 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - RivalService_CreateRival_FullMethodName = "/proto.v1.RivalService/CreateRival" - RivalService_ListRival_FullMethodName = "/proto.v1.RivalService/ListRival" - RivalService_DeleteRival_FullMethodName = "/proto.v1.RivalService/DeleteRival" - RivalService_AppendRivalChanges_FullMethodName = "/proto.v1.RivalService/AppendRivalChanges" - RivalService_ListRivalChanges_FullMethodName = "/proto.v1.RivalService/ListRivalChanges" - RivalService_DeleteRivalChanges_FullMethodName = "/proto.v1.RivalService/DeleteRivalChanges" - RivalService_AppendRivalProductInactiveDetail_FullMethodName = "/proto.v1.RivalService/AppendRivalProductInactiveDetail" - RivalService_DeleteRivalInactiveDetail_FullMethodName = "/proto.v1.RivalService/DeleteRivalInactiveDetail" - RivalService_AppendRivalProductActiveDetail_FullMethodName = "/proto.v1.RivalService/AppendRivalProductActiveDetail" - RivalService_DeleteRivalActiveDetail_FullMethodName = "/proto.v1.RivalService/DeleteRivalActiveDetail" + RivalService_CreateRival_FullMethodName = "/superjcd.rivalservice.v1.RivalService/CreateRival" + RivalService_ListRival_FullMethodName = "/superjcd.rivalservice.v1.RivalService/ListRival" + RivalService_DeleteRival_FullMethodName = "/superjcd.rivalservice.v1.RivalService/DeleteRival" + RivalService_AppendRivalChanges_FullMethodName = "/superjcd.rivalservice.v1.RivalService/AppendRivalChanges" + RivalService_ListRivalChanges_FullMethodName = "/superjcd.rivalservice.v1.RivalService/ListRivalChanges" + RivalService_DeleteRivalChanges_FullMethodName = "/superjcd.rivalservice.v1.RivalService/DeleteRivalChanges" + RivalService_AppendRivalProductInactiveDetail_FullMethodName = "/superjcd.rivalservice.v1.RivalService/AppendRivalProductInactiveDetail" + RivalService_DeleteRivalInactiveDetail_FullMethodName = "/superjcd.rivalservice.v1.RivalService/DeleteRivalInactiveDetail" + RivalService_AppendRivalProductActiveDetail_FullMethodName = "/superjcd.rivalservice.v1.RivalService/AppendRivalProductActiveDetail" + RivalService_DeleteRivalActiveDetail_FullMethodName = "/superjcd.rivalservice.v1.RivalService/DeleteRivalActiveDetail" ) // RivalServiceClient is the client API for RivalService service. @@ -393,7 +393,7 @@ func _RivalService_DeleteRivalActiveDetail_Handler(srv interface{}, ctx context. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var RivalService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "proto.v1.RivalService", + ServiceName: "superjcd.rivalservice.v1.RivalService", HandlerType: (*RivalServiceServer)(nil), Methods: []grpc.MethodDesc{ { diff --git a/proto/v1/rivalservice.proto b/proto/v1/rivalservice.proto index e57d674..e5f5dc0 100644 --- a/proto/v1/rivalservice.proto +++ b/proto/v1/rivalservice.proto @@ -1,6 +1,6 @@ syntax = "proto3"; -package proto.v1; +package superjcd.rivalservice.v1; option go_package = "github.com/superjcd/rivalservice/genproto/v1"; @@ -9,7 +9,7 @@ service RivalService { rpc CreateRival(CreateRivalRequest) returns (CreateRivalResponse); rpc ListRival(ListRivalRequest) returns (ListRivalResponse); rpc DeleteRival(DeleteRivalRequest) returns (DeleteRivalResponse); - + rpc AppendRivalChanges(AppendRivalChangesRequest) returns (AppendRivalChangesResponse); rpc ListRivalChanges(ListRivalChangesRequest) returns (ListRivalChangesResponse){}; rpc DeleteRivalChanges(DeleteRivalChangesRequest) returns (DeleteRivalChangesResponse) {}; @@ -108,6 +108,7 @@ message DeleteRivalResponse { message AppendRivalChangesRequest { string old_date=1; string new_date=2; + string field=3; } message AppendRivalChangesResponse { @@ -120,8 +121,9 @@ message ListRivalChangesRequest { string user=1; string country=2; string create_date=3; - int32 offset=4; - int32 limit=5; + string field=4; + int32 offset=5; + int32 limit=6; } message RivalChange { @@ -143,11 +145,7 @@ message ListRivalChangesResponse { message AppendRivalProductInactiveDetailRequest { - string asin=1; - string country=2; - string title=3; - string bullet_points=4; - string create_date=5; + repeated AmzProductInactivateDetail details=1; } @@ -157,7 +155,7 @@ message AppendRivalProductInactiveDetailResponse { } message AppendRivalProductActiveDetailRequest { - AmzProductActiveDetail details=1; + repeated AmzProductActiveDetail details=1; } message AppendRivalProductActiveDetailResponse { diff --git a/proto/v1/rivalservice.yaml b/proto/v1/rivalservice.yaml index 6e3dbd4..ddfdcb1 100644 --- a/proto/v1/rivalservice.yaml +++ b/proto/v1/rivalservice.yaml @@ -4,19 +4,19 @@ config_version: 3 http: rules: - - selector: proto.v1.RivalService.CreateRival + - selector: superjcd.rivalservice.v1.RivalService.CreateRival post: /v1/rivals - - selector: proto.v1.RivalService.ListRival + - selector: superjcd.rivalservice.v1.RivalService.ListRival get: /v1/rivals - - selector: proto.v1.RivalService.DeleteRival + - selector: superjcd.rivalservice.v1.RivalService.DeleteRival delete: /v1/rivals - - selector: proto.v1.RivalService.AppendRivalChanges + - selector: superjcd.rivalservice.v1.RivalService.AppendRivalChanges post: /v1/rivals/changes - - selector: proto.v1.RivalService.ListRivalChanges + - selector: superjcd.rivalservice.v1.RivalService.ListRivalChanges list: /v1/rivals/changes - - selector: proto.v1.RivalService.AppendRivalProductInactiveDetail + - selector: superjcd.rivalservice.v1.RivalService.AppendRivalProductInactiveDetail post: /v1/rivals/details/inactive - - selector: proto.v1.RivalService.AppendRivalProductActiveDetail + - selector: superjcd.rivalservice.v1.RivalService.AppendRivalProductActiveDetail post: /v1/rivals/details/active diff --git a/service/sql_store/sql/product_details.go b/service/sql_store/sql/product_details.go index 46a12ca..63cd98b 100644 --- a/service/sql_store/sql/product_details.go +++ b/service/sql_store/sql/product_details.go @@ -16,52 +16,63 @@ type product_details struct { var _ sql_store.ProductDetailsStore = (*product_details)(nil) func (pd *product_details) AppendActiveDetail(ctx context.Context, rq *v1.AppendRivalProductActiveDetailRequest) error { - active_info := sql_store.RivalProdutActiveDetail{ - Asin: rq.Details.Asin, - Country: rq.Details.Country, - Price: rq.Details.Price, - Currency: rq.Details.Currency, - Coupon: rq.Details.Coupon, - Star: rq.Details.Star, - Ratings: rq.Details.Ratings, - Image: rq.Details.Image, - ParentAsin: rq.Details.ParentAsin, - CategoryInfo: rq.Details.CategoryInfo, - TopCategoryName: rq.Details.TopCategoryName, - TopCategoryRank: rq.Details.TopCategoryRank, - Color: rq.Details.Color, - Weight: rq.Details.Weight, - WeightUnit: rq.Details.WeightUnit, - Dimensions: rq.Details.Dimensions, - DimensionsUnit: rq.Details.DimensionsUnit, - CreateDate: rq.Details.CreateDate, + activeInfos := make([]sql_store.RivalProdutActiveDetail, 0, 16) + + for _, d := range rq.Details { + activeInfo := sql_store.RivalProdutActiveDetail{ + Asin: d.Asin, + Country: d.Country, + Price: d.Price, + Currency: d.Currency, + Coupon: d.Coupon, + Star: d.Star, + Ratings: d.Ratings, + Image: d.Image, + ParentAsin: d.ParentAsin, + CategoryInfo: d.CategoryInfo, + TopCategoryName: d.TopCategoryName, + TopCategoryRank: d.TopCategoryRank, + Color: d.Color, + Weight: d.Weight, + WeightUnit: d.WeightUnit, + Dimensions: d.Dimensions, + DimensionsUnit: d.DimensionsUnit, + CreateDate: d.CreateDate, + } + activeInfos = append(activeInfos, activeInfo) } - return pd.db.Create(&active_info).Error + return pd.db.Create(&activeInfos).Error } func (pd *product_details) DeleteActiveDetail(ctx context.Context, rq *v1.DeleteRivalActiveDetailRequest) error { if rq.MinCreateDate != "" { - return pd.db.Where("create_date < ?", rq.MinCreateDate).Delete(&sql_store.RivalProdutActiveDetail{}).Error + return pd.db.Unscoped().Where("create_date < ?", rq.MinCreateDate).Delete(&sql_store.RivalProdutActiveDetail{}).Error } return fmt.Errorf("min create date参数不可以为空") } func (pd *product_details) AppendInactiveDetail(ctx context.Context, rq *v1.AppendRivalProductInactiveDetailRequest) error { - inactive_info := sql_store.RivalProdutInactiveDetail{ - Asin: rq.Asin, - Country: rq.Country, - Title: rq.Title, - BulletPoints: rq.BulletPoints, - CreateDate: rq.CreateDate, + inactiveInfos := make([]sql_store.RivalProdutInactiveDetail, 0, 16) + + for _, d := range rq.Details { + inactiveInfo := sql_store.RivalProdutInactiveDetail{ + Asin: d.Asin, + Country: d.Country, + Title: d.Title, + BulletPoints: d.BulletPoints, + CreateDate: d.CreateDate, + } + + inactiveInfos = append(inactiveInfos, inactiveInfo) } - return pd.db.Create(&inactive_info).Error + return pd.db.Create(&inactiveInfos).Error } func (pd *product_details) DeleteInactiveDetail(ctx context.Context, rq *v1.DeleteRivalInactiveDetailRequest) error { if rq.MinCreateDate != "" { - return pd.db.Where("create_date < ?", rq.MinCreateDate).Delete(&sql_store.RivalProdutInactiveDetail{}).Error + return pd.db.Unscoped().Where("create_date < ?", rq.MinCreateDate).Delete(&sql_store.RivalProdutInactiveDetail{}).Error } return fmt.Errorf("min create date参数不可以为空") } diff --git a/service/sql_store/sql/rival_changes.go b/service/sql_store/sql/rival_changes.go index 9ee94c5..6a3514a 100644 --- a/service/sql_store/sql/rival_changes.go +++ b/service/sql_store/sql/rival_changes.go @@ -17,38 +17,47 @@ var _ sql_store.RivalChangeStore = (*rival_changes)(nil) func (rc *rival_changes) Append(ctx context.Context, rq *v1.AppendRivalChangesRequest) error { rivalChanges := make([]sql_store.RivalChange, 0, 512) - - rc.db.Raw(`SELECT + sql := fmt.Sprintf(` + SELECT t1.country country, t1.asin asin, - 'price' as field, + '%s' as field, t1.price as old_value, t2.price as new_value, - ? as create_date + '%s' as create_date FROM ( Select country, asin, - price + %s FROM rival_produt_active_details - WHERE create_date = ? - and price != '' + WHERE create_date = '%s' + and %s != '' )t1 LEFT JOIN ( Select country, asin, - price + %s FROM rival_produt_active_details - WHERE create_date = ? - and price != '' + WHERE create_date = '%s' + and %s != '' )t2 on t1.asin = t2.asin and t1.country = t2.country - where t1.price != t2.price`, rq.NewDate, rq.OldDate, rq.NewDate).Scan(&rivalChanges) + where t1.price != t2.price + `, rq.Field, rq.NewDate, rq.Field, rq.OldDate, rq.Field, rq.Field, rq.NewDate, rq.Field) + + d := rc.db.Raw(sql).Scan(&rivalChanges) + if d.Error != nil { + return d.Error + } + if len(rivalChanges) > 0 { + return rc.db.Create(&rivalChanges).Error + } - return rc.db.Create(rivalChanges).Error + return nil } @@ -84,10 +93,12 @@ func (rc *rival_changes) List(ctx context.Context, rq *v1.ListRivalChangesReques FROM rival_changes WHERE country = '%s' AND create_date = '%s' + AND field = '%s' ) t2 ON t1.rival_asin = t2.asin AND t1.country = t2.country + ` - sql = fmt.Sprintf(sql, rq.User, rq.Country, rq.Country, rq.CreateDate) + sql = fmt.Sprintf(sql, rq.User, rq.Country, rq.Country, rq.CreateDate, rq.Field) rc.db.Raw(sql).Scan(&userChanges) @@ -100,7 +111,7 @@ func (rc *rival_changes) List(ctx context.Context, rq *v1.ListRivalChangesReques func (rc *rival_changes) Delete(ctx context.Context, rq *v1.DeleteRivalChangesRequest) error { if rq.MinCreateDate != "" { - return rc.db.Where("create_date < ?", rq.MinCreateDate).Delete(&sql_store.RivalChange{}).Error + return rc.db.Unscoped().Where("create_date < ?", rq.MinCreateDate).Delete(&sql_store.RivalChange{}).Error } return fmt.Errorf("min_create_date不可谓空字段") diff --git a/service/sql_store/sql/rivals.go b/service/sql_store/sql/rivals.go index 0b5936c..26a6219 100644 --- a/service/sql_store/sql/rivals.go +++ b/service/sql_store/sql/rivals.go @@ -76,6 +76,6 @@ func (ur *rivals) Delete(ctx context.Context, rq *v1.DeleteRivalRequest) error { tx = tx.Where("asin = ?", rq.Asin) } - return tx.Delete(&sql_store.Rival{}).Error + return tx.Unscoped().Delete(&sql_store.Rival{}).Error } diff --git a/service/sql_store/sql/sqlstore_test.go b/service/sql_store/sql/sqlstore_test.go index 579e756..9c27249 100644 --- a/service/sql_store/sql/sqlstore_test.go +++ b/service/sql_store/sql/sqlstore_test.go @@ -86,27 +86,32 @@ func (suite *FakeStoreTestSuite) TestListRival() { func (suite *FakeStoreTestSuite) TestAppendDetail() { // 导入active rq := &v1.AppendRivalProductActiveDetailRequest{ - Details: &v1.AmzProductActiveDetail{ - Asin: "B1001", - Country: "US", - Price: "100", - CreateDate: "2022-01-01", + Details: []*v1.AmzProductActiveDetail{ + { + Asin: "B1001", + Country: "US", + Price: "100", + CreateDate: "2022-01-01", + }, }, } err := suite.FakeFactory.ProductDetails().AppendActiveDetail(context.Background(), rq) assert.Nil(suite.T(), err) - rq2 := &v1.AppendRivalProductActiveDetailRequest{ - Details: &v1.AmzProductActiveDetail{ - Asin: "B1001", - Country: "US", - Price: "101", - CreateDate: "2022-01-02", + rq2 := &v1.AppendRivalProductInactiveDetailRequest{ + Details: []*v1.AmzProductInactivateDetail{ + { + Asin: "B1001", + Country: "US", + Title: "Iphone 15", + BulletPoints: "1 good 2 cheap", + CreateDate: "2022-01-01", + }, }, } - err2 := suite.FakeFactory.ProductDetails().AppendActiveDetail(context.Background(), rq2) + err2 := suite.FakeFactory.ProductDetails().AppendInactiveDetail(context.Background(), rq2) assert.Nil(suite.T(), err2) } @@ -115,6 +120,7 @@ func (suite *FakeStoreTestSuite) TestAppendRivalChanges() { rq := &v1.AppendRivalChangesRequest{ OldDate: "2022-01-01", NewDate: "2022-01-02", + Field: "price", } err := suite.FakeFactory.RivalChanges().Append(context.Background(), rq) @@ -126,6 +132,7 @@ func (suite *FakeStoreTestSuite) TestListUserRivalChanges() { User: "Jack", Country: "US", CreateDate: "2022-01-02", + Field: "price", Offset: 0, Limit: 10, }