From 4718de6c804c18d0682300fed733c62c48404f9f Mon Sep 17 00:00:00 2001 From: Arnaud Delcasse Date: Tue, 25 Mar 2025 15:07:39 +0100 Subject: [PATCH] integration with parcoursmob --- handler/management.go | 17 + handler/search.go | 4 +- servers/grpc/proto/carpool-service.pb.go | 1076 ++++++++++------- servers/grpc/proto/carpool-service.proto | 9 + servers/grpc/proto/carpool-service_grpc.pb.go | 37 + servers/grpc/server/management.go | 36 +- servers/grpc/server/search.go | 14 +- storage/mongodb.go | 18 +- storage/postgresql.go | 12 +- storage/storage.go | 5 +- 10 files changed, 739 insertions(+), 489 deletions(-) diff --git a/handler/management.go b/handler/management.go index e54fb3e..0f6ddd2 100644 --- a/handler/management.go +++ b/handler/management.go @@ -58,6 +58,23 @@ func (h *CarpoolServiceHandler) CreateRegularRoutes(routes []*geojson.FeatureCol return nil } +func (h *CarpoolServiceHandler) GetUserRegularRoutes(userid string) ([]*geojson.FeatureCollection, error) { + routes, err := h.Storage.GetUserRegularRoutes(userid) + if err != nil { + log.Error().Err(err).Msg("error in storage - GetUserRegularRoutes") + return nil, err + } + return routes, nil +} + +func (h *CarpoolServiceHandler) DeleteRegularRoutes(ids []string) (err error) { + err = h.Storage.DeleteRegularRoutes(ids) + if err != nil { + log.Error().Err(err).Msg("error deleteing regular routes") + } + return err +} + // GetUserPlanning returns the planned routes for a user between 2 dates. It transforms regular routes to multiple indivual planned route schedules func (h *CarpoolServiceHandler) GetUserPlanning(userid string, minDepartureDate time.Time, maxDepartureDate time.Time) (planned_schedules map[string][]internal.PlannedRouteSchedule, missing_planning bool, err error) { log.Debug(). diff --git a/handler/search.go b/handler/search.go index 400cf79..b61112b 100644 --- a/handler/search.go +++ b/handler/search.go @@ -12,7 +12,6 @@ import ( // GetDriverJourneys searches for matching punctual planned driver journeys. func (h *CarpoolServiceHandler) GetDriverJourneys(departure orb.Point, arrival orb.Point, departureRadius *float64, arrivalRadius *float64, minDate time.Time, maxDate time.Time, count *int64) ([]internal.PlannedRouteSchedule, error) { - log.Debug(). Any("departure", departure). Any("arrival", arrival). @@ -62,7 +61,7 @@ func (h *CarpoolServiceHandler) GetDriverJourneys(departure orb.Point, arrival o distanceFromArrival, indexArrival := geoutils.DistanceFromLineString(arrival, ls) if indexArrival >= indexDeparture && distanceFromDeparture <= drad && distanceFromArrival <= arad { - //routePoints := []orb.Point{r.Route.Features[0].Point(), departure, arrival, r.Route.Features[1].Point()} + // routePoints := []orb.Point{r.Route.Features[0].Point(), departure, arrival, r.Route.Features[1].Point()} routePoints := []orb.Point{r.Route.Features[0].Point(), departure, arrival, r.Route.Features[1].Point()} log.Debug().Any("route points", routePoints).Msg("calculate multipoint route") itinerary, err := h.Routing.Route(routePoints) @@ -96,7 +95,6 @@ func (h *CarpoolServiceHandler) GetDriverJourneys(departure orb.Point, arrival o // GetPassengerJourneys searches for matching punctual planned passenger journeys. func (h *CarpoolServiceHandler) GetPassengerJourneys(departure orb.Point, arrival orb.Point, departureRadius *float64, arrivalRadius *float64, minDate time.Time, maxDate time.Time, count *int64) ([]internal.PlannedRouteSchedule, error) { - log.Debug(). Any("departure", departure). Any("arrival", arrival). diff --git a/servers/grpc/proto/carpool-service.pb.go b/servers/grpc/proto/carpool-service.pb.go index 904cbb1..37d0b35 100644 --- a/servers/grpc/proto/carpool-service.pb.go +++ b/servers/grpc/proto/carpool-service.pb.go @@ -192,6 +192,100 @@ func (*DeleteRegularRoutesResponse) Descriptor() ([]byte, []int) { return file_carpool_service_proto_rawDescGZIP(), []int{3} } +type GetRegularRoutesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` +} + +func (x *GetRegularRoutesRequest) Reset() { + *x = GetRegularRoutesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_carpool_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRegularRoutesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRegularRoutesRequest) ProtoMessage() {} + +func (x *GetRegularRoutesRequest) ProtoReflect() protoreflect.Message { + mi := &file_carpool_service_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRegularRoutesRequest.ProtoReflect.Descriptor instead. +func (*GetRegularRoutesRequest) Descriptor() ([]byte, []int) { + return file_carpool_service_proto_rawDescGZIP(), []int{4} +} + +func (x *GetRegularRoutesRequest) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +type GetRegularRoutesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Routes []*CarpoolFeatureCollection `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"` +} + +func (x *GetRegularRoutesResponse) Reset() { + *x = GetRegularRoutesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_carpool_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRegularRoutesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRegularRoutesResponse) ProtoMessage() {} + +func (x *GetRegularRoutesResponse) ProtoReflect() protoreflect.Message { + mi := &file_carpool_service_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetRegularRoutesResponse.ProtoReflect.Descriptor instead. +func (*GetRegularRoutesResponse) Descriptor() ([]byte, []int) { + return file_carpool_service_proto_rawDescGZIP(), []int{5} +} + +func (x *GetRegularRoutesResponse) GetRoutes() []*CarpoolFeatureCollection { + if x != nil { + return x.Routes + } + return nil +} + type GetUserPlanningRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -205,7 +299,7 @@ type GetUserPlanningRequest struct { func (x *GetUserPlanningRequest) Reset() { *x = GetUserPlanningRequest{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[4] + mi := &file_carpool_service_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -218,7 +312,7 @@ func (x *GetUserPlanningRequest) String() string { func (*GetUserPlanningRequest) ProtoMessage() {} func (x *GetUserPlanningRequest) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[4] + mi := &file_carpool_service_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -231,7 +325,7 @@ func (x *GetUserPlanningRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserPlanningRequest.ProtoReflect.Descriptor instead. func (*GetUserPlanningRequest) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{4} + return file_carpool_service_proto_rawDescGZIP(), []int{6} } func (x *GetUserPlanningRequest) GetUserId() string { @@ -267,7 +361,7 @@ type GetUserPlanningResponse struct { func (x *GetUserPlanningResponse) Reset() { *x = GetUserPlanningResponse{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[5] + mi := &file_carpool_service_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -280,7 +374,7 @@ func (x *GetUserPlanningResponse) String() string { func (*GetUserPlanningResponse) ProtoMessage() {} func (x *GetUserPlanningResponse) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[5] + mi := &file_carpool_service_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -293,7 +387,7 @@ func (x *GetUserPlanningResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserPlanningResponse.ProtoReflect.Descriptor instead. func (*GetUserPlanningResponse) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{5} + return file_carpool_service_proto_rawDescGZIP(), []int{7} } func (x *GetUserPlanningResponse) GetRoutesByDates() map[string]*CarpoolRoutesCollection { @@ -321,7 +415,7 @@ type GetPlannedTripRequest struct { func (x *GetPlannedTripRequest) Reset() { *x = GetPlannedTripRequest{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[6] + mi := &file_carpool_service_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -334,7 +428,7 @@ func (x *GetPlannedTripRequest) String() string { func (*GetPlannedTripRequest) ProtoMessage() {} func (x *GetPlannedTripRequest) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[6] + mi := &file_carpool_service_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -347,7 +441,7 @@ func (x *GetPlannedTripRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPlannedTripRequest.ProtoReflect.Descriptor instead. func (*GetPlannedTripRequest) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{6} + return file_carpool_service_proto_rawDescGZIP(), []int{8} } func (x *GetPlannedTripRequest) GetId() string { @@ -368,7 +462,7 @@ type GetPlannedTripResponse struct { func (x *GetPlannedTripResponse) Reset() { *x = GetPlannedTripResponse{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[7] + mi := &file_carpool_service_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -381,7 +475,7 @@ func (x *GetPlannedTripResponse) String() string { func (*GetPlannedTripResponse) ProtoMessage() {} func (x *GetPlannedTripResponse) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[7] + mi := &file_carpool_service_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -394,7 +488,7 @@ func (x *GetPlannedTripResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPlannedTripResponse.ProtoReflect.Descriptor instead. func (*GetPlannedTripResponse) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{7} + return file_carpool_service_proto_rawDescGZIP(), []int{9} } func (x *GetPlannedTripResponse) GetPlannedTrip() *CarpoolFeatureCollection { @@ -417,7 +511,7 @@ type GetUserBookingsRequest struct { func (x *GetUserBookingsRequest) Reset() { *x = GetUserBookingsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[8] + mi := &file_carpool_service_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -430,7 +524,7 @@ func (x *GetUserBookingsRequest) String() string { func (*GetUserBookingsRequest) ProtoMessage() {} func (x *GetUserBookingsRequest) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[8] + mi := &file_carpool_service_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -443,7 +537,7 @@ func (x *GetUserBookingsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserBookingsRequest.ProtoReflect.Descriptor instead. func (*GetUserBookingsRequest) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{8} + return file_carpool_service_proto_rawDescGZIP(), []int{10} } func (x *GetUserBookingsRequest) GetUserId() string { @@ -478,7 +572,7 @@ type GetUserBookingsResponse struct { func (x *GetUserBookingsResponse) Reset() { *x = GetUserBookingsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[9] + mi := &file_carpool_service_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -491,7 +585,7 @@ func (x *GetUserBookingsResponse) String() string { func (*GetUserBookingsResponse) ProtoMessage() {} func (x *GetUserBookingsResponse) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[9] + mi := &file_carpool_service_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -504,7 +598,7 @@ func (x *GetUserBookingsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserBookingsResponse.ProtoReflect.Descriptor instead. func (*GetUserBookingsResponse) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{9} + return file_carpool_service_proto_rawDescGZIP(), []int{11} } func (x *GetUserBookingsResponse) GetBookings() []*CarpoolServiceBooking { @@ -534,7 +628,7 @@ type DriverJourneysRequest struct { func (x *DriverJourneysRequest) Reset() { *x = DriverJourneysRequest{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[10] + mi := &file_carpool_service_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -547,7 +641,7 @@ func (x *DriverJourneysRequest) String() string { func (*DriverJourneysRequest) ProtoMessage() {} func (x *DriverJourneysRequest) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[10] + mi := &file_carpool_service_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -560,7 +654,7 @@ func (x *DriverJourneysRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverJourneysRequest.ProtoReflect.Descriptor instead. func (*DriverJourneysRequest) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{10} + return file_carpool_service_proto_rawDescGZIP(), []int{12} } func (x *DriverJourneysRequest) GetDepartureLat() float64 { @@ -637,7 +731,7 @@ type DriverJourneysResponse struct { func (x *DriverJourneysResponse) Reset() { *x = DriverJourneysResponse{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[11] + mi := &file_carpool_service_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -650,7 +744,7 @@ func (x *DriverJourneysResponse) String() string { func (*DriverJourneysResponse) ProtoMessage() {} func (x *DriverJourneysResponse) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[11] + mi := &file_carpool_service_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -663,7 +757,7 @@ func (x *DriverJourneysResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverJourneysResponse.ProtoReflect.Descriptor instead. func (*DriverJourneysResponse) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{11} + return file_carpool_service_proto_rawDescGZIP(), []int{13} } func (x *DriverJourneysResponse) GetDriverJourneys() []*CarpoolServiceDriverJourney { @@ -692,7 +786,7 @@ type PassengerJourneysRequest struct { func (x *PassengerJourneysRequest) Reset() { *x = PassengerJourneysRequest{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[12] + mi := &file_carpool_service_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -705,7 +799,7 @@ func (x *PassengerJourneysRequest) String() string { func (*PassengerJourneysRequest) ProtoMessage() {} func (x *PassengerJourneysRequest) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[12] + mi := &file_carpool_service_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -718,7 +812,7 @@ func (x *PassengerJourneysRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PassengerJourneysRequest.ProtoReflect.Descriptor instead. func (*PassengerJourneysRequest) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{12} + return file_carpool_service_proto_rawDescGZIP(), []int{14} } func (x *PassengerJourneysRequest) GetDepartureLat() float64 { @@ -795,7 +889,7 @@ type PassengerJourneysResponse struct { func (x *PassengerJourneysResponse) Reset() { *x = PassengerJourneysResponse{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[13] + mi := &file_carpool_service_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -808,7 +902,7 @@ func (x *PassengerJourneysResponse) String() string { func (*PassengerJourneysResponse) ProtoMessage() {} func (x *PassengerJourneysResponse) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[13] + mi := &file_carpool_service_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -821,7 +915,7 @@ func (x *PassengerJourneysResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PassengerJourneysResponse.ProtoReflect.Descriptor instead. func (*PassengerJourneysResponse) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{13} + return file_carpool_service_proto_rawDescGZIP(), []int{15} } func (x *PassengerJourneysResponse) GetPassengerJourneys() []*CarpoolServicePassengerJourney { @@ -853,7 +947,7 @@ type DriverRegularTripsRequest struct { func (x *DriverRegularTripsRequest) Reset() { *x = DriverRegularTripsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[14] + mi := &file_carpool_service_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -866,7 +960,7 @@ func (x *DriverRegularTripsRequest) String() string { func (*DriverRegularTripsRequest) ProtoMessage() {} func (x *DriverRegularTripsRequest) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[14] + mi := &file_carpool_service_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -879,7 +973,7 @@ func (x *DriverRegularTripsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverRegularTripsRequest.ProtoReflect.Descriptor instead. func (*DriverRegularTripsRequest) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{14} + return file_carpool_service_proto_rawDescGZIP(), []int{16} } func (x *DriverRegularTripsRequest) GetDepartureLat() float64 { @@ -977,7 +1071,7 @@ type DriverRegularTripsResponse struct { func (x *DriverRegularTripsResponse) Reset() { *x = DriverRegularTripsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[15] + mi := &file_carpool_service_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -990,7 +1084,7 @@ func (x *DriverRegularTripsResponse) String() string { func (*DriverRegularTripsResponse) ProtoMessage() {} func (x *DriverRegularTripsResponse) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[15] + mi := &file_carpool_service_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1003,7 +1097,7 @@ func (x *DriverRegularTripsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverRegularTripsResponse.ProtoReflect.Descriptor instead. func (*DriverRegularTripsResponse) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{15} + return file_carpool_service_proto_rawDescGZIP(), []int{17} } func (x *DriverRegularTripsResponse) GetDriverRegularTrips() []*CarpoolServiceDriverRegularTrip { @@ -1035,7 +1129,7 @@ type PassengerRegularTripsRequest struct { func (x *PassengerRegularTripsRequest) Reset() { *x = PassengerRegularTripsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[16] + mi := &file_carpool_service_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1048,7 +1142,7 @@ func (x *PassengerRegularTripsRequest) String() string { func (*PassengerRegularTripsRequest) ProtoMessage() {} func (x *PassengerRegularTripsRequest) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[16] + mi := &file_carpool_service_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1061,7 +1155,7 @@ func (x *PassengerRegularTripsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PassengerRegularTripsRequest.ProtoReflect.Descriptor instead. func (*PassengerRegularTripsRequest) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{16} + return file_carpool_service_proto_rawDescGZIP(), []int{18} } func (x *PassengerRegularTripsRequest) GetDepartureLat() float64 { @@ -1159,7 +1253,7 @@ type PassengerRegularTripsResponse struct { func (x *PassengerRegularTripsResponse) Reset() { *x = PassengerRegularTripsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[17] + mi := &file_carpool_service_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1172,7 +1266,7 @@ func (x *PassengerRegularTripsResponse) String() string { func (*PassengerRegularTripsResponse) ProtoMessage() {} func (x *PassengerRegularTripsResponse) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[17] + mi := &file_carpool_service_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1185,7 +1279,7 @@ func (x *PassengerRegularTripsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PassengerRegularTripsResponse.ProtoReflect.Descriptor instead. func (*PassengerRegularTripsResponse) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{17} + return file_carpool_service_proto_rawDescGZIP(), []int{19} } func (x *PassengerRegularTripsResponse) GetDriverRegularTrips() []*CarpoolServiceDriverRegularTrip { @@ -1206,7 +1300,7 @@ type CreateCarpoolBookingRequest struct { func (x *CreateCarpoolBookingRequest) Reset() { *x = CreateCarpoolBookingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[18] + mi := &file_carpool_service_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1219,7 +1313,7 @@ func (x *CreateCarpoolBookingRequest) String() string { func (*CreateCarpoolBookingRequest) ProtoMessage() {} func (x *CreateCarpoolBookingRequest) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[18] + mi := &file_carpool_service_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1232,7 +1326,7 @@ func (x *CreateCarpoolBookingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateCarpoolBookingRequest.ProtoReflect.Descriptor instead. func (*CreateCarpoolBookingRequest) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{18} + return file_carpool_service_proto_rawDescGZIP(), []int{20} } func (x *CreateCarpoolBookingRequest) GetBooking() *CarpoolServiceBooking { @@ -1253,7 +1347,7 @@ type CreateCarpoolBookingResponse struct { func (x *CreateCarpoolBookingResponse) Reset() { *x = CreateCarpoolBookingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[19] + mi := &file_carpool_service_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1266,7 +1360,7 @@ func (x *CreateCarpoolBookingResponse) String() string { func (*CreateCarpoolBookingResponse) ProtoMessage() {} func (x *CreateCarpoolBookingResponse) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[19] + mi := &file_carpool_service_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1279,7 +1373,7 @@ func (x *CreateCarpoolBookingResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateCarpoolBookingResponse.ProtoReflect.Descriptor instead. func (*CreateCarpoolBookingResponse) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{19} + return file_carpool_service_proto_rawDescGZIP(), []int{21} } func (x *CreateCarpoolBookingResponse) GetBooking() *CarpoolServiceBooking { @@ -1302,7 +1396,7 @@ type UpdateCarpoolBookingRequest struct { func (x *UpdateCarpoolBookingRequest) Reset() { *x = UpdateCarpoolBookingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[20] + mi := &file_carpool_service_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1315,7 +1409,7 @@ func (x *UpdateCarpoolBookingRequest) String() string { func (*UpdateCarpoolBookingRequest) ProtoMessage() {} func (x *UpdateCarpoolBookingRequest) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[20] + mi := &file_carpool_service_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1328,7 +1422,7 @@ func (x *UpdateCarpoolBookingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateCarpoolBookingRequest.ProtoReflect.Descriptor instead. func (*UpdateCarpoolBookingRequest) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{20} + return file_carpool_service_proto_rawDescGZIP(), []int{22} } func (x *UpdateCarpoolBookingRequest) GetBookingId() string { @@ -1361,7 +1455,7 @@ type UpdateCarpoolBookingResponse struct { func (x *UpdateCarpoolBookingResponse) Reset() { *x = UpdateCarpoolBookingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[21] + mi := &file_carpool_service_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1374,7 +1468,7 @@ func (x *UpdateCarpoolBookingResponse) String() string { func (*UpdateCarpoolBookingResponse) ProtoMessage() {} func (x *UpdateCarpoolBookingResponse) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[21] + mi := &file_carpool_service_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1387,7 +1481,7 @@ func (x *UpdateCarpoolBookingResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateCarpoolBookingResponse.ProtoReflect.Descriptor instead. func (*UpdateCarpoolBookingResponse) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{21} + return file_carpool_service_proto_rawDescGZIP(), []int{23} } type GetCarpoolBookingRequest struct { @@ -1401,7 +1495,7 @@ type GetCarpoolBookingRequest struct { func (x *GetCarpoolBookingRequest) Reset() { *x = GetCarpoolBookingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[22] + mi := &file_carpool_service_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1414,7 +1508,7 @@ func (x *GetCarpoolBookingRequest) String() string { func (*GetCarpoolBookingRequest) ProtoMessage() {} func (x *GetCarpoolBookingRequest) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[22] + mi := &file_carpool_service_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1427,7 +1521,7 @@ func (x *GetCarpoolBookingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCarpoolBookingRequest.ProtoReflect.Descriptor instead. func (*GetCarpoolBookingRequest) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{22} + return file_carpool_service_proto_rawDescGZIP(), []int{24} } func (x *GetCarpoolBookingRequest) GetBookingId() string { @@ -1448,7 +1542,7 @@ type GetCarpoolBookingResponse struct { func (x *GetCarpoolBookingResponse) Reset() { *x = GetCarpoolBookingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_carpool_service_proto_msgTypes[23] + mi := &file_carpool_service_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1461,7 +1555,7 @@ func (x *GetCarpoolBookingResponse) String() string { func (*GetCarpoolBookingResponse) ProtoMessage() {} func (x *GetCarpoolBookingResponse) ProtoReflect() protoreflect.Message { - mi := &file_carpool_service_proto_msgTypes[23] + mi := &file_carpool_service_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1474,7 +1568,7 @@ func (x *GetCarpoolBookingResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCarpoolBookingResponse.ProtoReflect.Descriptor instead. func (*GetCarpoolBookingResponse) Descriptor() ([]byte, []int) { - return file_carpool_service_proto_rawDescGZIP(), []int{23} + return file_carpool_service_proto_rawDescGZIP(), []int{25} } func (x *GetCarpoolBookingResponse) GetBooking() *CarpoolServiceBooking { @@ -1504,325 +1598,338 @@ var file_carpool_service_proto_rawDesc = []byte{ 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x75, 0x6c, + 0x61, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, - 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x12, 0x6d, + 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x6d, + 0x61, 0x78, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, + 0xf5, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, + 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0d, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x73, + 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x1a, 0x5a, 0x0a, 0x12, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x27, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x6c, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x22, 0x56, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x54, 0x72, + 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0c, 0x70, 0x6c, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x6c, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x69, 0x70, 0x22, 0xc3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x08, + 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x69, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x44, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0x4d, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x62, 0x6f, 0x6f, + 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x43, 0x61, + 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, + 0x69, 0x6e, 0x67, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xc2, 0x03, + 0x0a, 0x15, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, + 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, + 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x6e, + 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x61, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, + 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6e, + 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, + 0x4c, 0x6e, 0x67, 0x12, 0x41, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, + 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, + 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, + 0x65, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x72, + 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x01, 0x48, 0x02, 0x52, 0x0d, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, + 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x5f, 0x0a, 0x16, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, + 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0f, + 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, + 0x6e, 0x65, 0x79, 0x52, 0x0e, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, + 0x65, 0x79, 0x73, 0x22, 0xc5, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, + 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6c, 0x61, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, + 0x72, 0x65, 0x4c, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, + 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, + 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x6e, 0x67, 0x12, 0x41, 0x0a, 0x0e, + 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x44, - 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x22, 0xf5, 0x01, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x73, 0x12, 0x29, 0x0a, - 0x10, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, - 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x1a, 0x5a, 0x0a, 0x12, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x27, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, - 0x65, 0x64, 0x54, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x56, 0x0a, - 0x16, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x69, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x6e, 0x6e, - 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, - 0x64, 0x54, 0x72, 0x69, 0x70, 0x22, 0xc3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x44, 0x61, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x61, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x22, 0x4d, 0x0a, 0x17, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, - 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, - 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xc2, 0x03, 0x0a, 0x15, 0x44, - 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, - 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x6e, 0x67, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x61, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x6e, 0x67, - 0x12, 0x41, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, - 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, - 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x44, - 0x65, 0x6c, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x01, 0x48, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x52, 0x61, - 0x64, 0x69, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x72, 0x72, 0x69, 0x76, - 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x48, - 0x02, 0x52, 0x0d, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x03, 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, + 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x22, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, + 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, + 0x0f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x0d, 0x61, + 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6b, 0x0a, 0x19, 0x50, + 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x12, 0x70, 0x61, 0x73, 0x73, + 0x65, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, + 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x11, 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, + 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x22, 0xb2, 0x05, 0x0a, 0x19, 0x44, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, + 0x75, 0x72, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x6e, 0x67, + 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x61, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x61, + 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6e, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, + 0x6e, 0x67, 0x12, 0x31, 0x0a, 0x15, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x4f, 0x66, 0x44, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x77, 0x65, 0x65, 0x6b, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x57, 0x65, 0x65, + 0x6b, 0x44, 0x61, 0x79, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, + 0x6c, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, + 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x72, 0x72, + 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x01, 0x48, 0x02, 0x52, 0x0d, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x64, 0x69, + 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, + 0x10, 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x04, 0x52, 0x10, + 0x6d, 0x61, 0x78, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x03, 0x48, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, - 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x5f, 0x0a, 0x16, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x64, 0x72, 0x69, - 0x76, 0x65, 0x72, 0x5f, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, - 0x52, 0x0e, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, - 0x22, 0xc5, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, - 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, - 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, - 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, - 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x75, 0x72, 0x65, 0x4c, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, 0x76, - 0x61, 0x6c, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x72, - 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, - 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, - 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x6e, 0x67, 0x12, 0x41, 0x0a, 0x0e, 0x64, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x64, - 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0a, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, - 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x88, 0x01, 0x01, - 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x61, - 0x64, 0x69, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x64, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, - 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x0d, 0x61, 0x72, 0x72, 0x69, - 0x76, 0x61, 0x6c, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x6b, 0x0a, 0x19, 0x50, 0x61, 0x73, 0x73, - 0x65, 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x12, 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, - 0x65, 0x72, 0x5f, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, - 0x65, 0x79, 0x52, 0x11, 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x75, - 0x72, 0x6e, 0x65, 0x79, 0x73, 0x22, 0xb2, 0x05, 0x0a, 0x19, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, - 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x6e, 0x67, 0x12, 0x1f, 0x0a, - 0x0b, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x61, 0x74, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x6e, 0x67, 0x12, - 0x31, 0x0a, 0x15, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, - 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x44, - 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, - 0x77, 0x65, 0x65, 0x6b, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x44, 0x61, - 0x79, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, - 0x6c, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x75, 0x72, 0x65, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, - 0x48, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x52, 0x61, 0x64, - 0x69, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, - 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, - 0x52, 0x0d, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x10, 0x6d, 0x69, - 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x4d, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, - 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x04, 0x52, 0x10, 0x6d, 0x61, 0x78, - 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x48, - 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, - 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, - 0x75, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, - 0x78, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x70, 0x0a, 0x1a, 0x44, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x70, 0x0a, + 0x1a, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, + 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x14, 0x64, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x74, 0x72, + 0x69, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x43, 0x61, 0x72, 0x70, + 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x52, 0x12, 0x64, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x22, + 0xb5, 0x05, 0x0a, 0x1c, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x67, + 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6c, 0x61, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, + 0x72, 0x65, 0x4c, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, + 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, + 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x0a, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x6e, 0x67, 0x12, 0x31, 0x0a, 0x15, + 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, + 0x66, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x44, 0x61, 0x79, 0x12, + 0x2e, 0x0a, 0x13, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x77, 0x65, 0x65, + 0x6b, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x73, 0x12, + 0x22, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, + 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, + 0x0f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x0d, 0x61, + 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x4d, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x44, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, + 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x04, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x44, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x48, 0x05, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, + 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x73, 0x0a, 0x1d, 0x50, 0x61, 0x73, 0x73, 0x65, + 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x14, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x74, 0x72, 0x69, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x52, 0x12, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x22, 0xb5, 0x05, 0x0a, - 0x1c, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, - 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, - 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x4c, - 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, - 0x6c, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x75, 0x72, 0x65, 0x4c, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, 0x76, - 0x61, 0x6c, 0x5f, 0x6c, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x72, - 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x69, - 0x76, 0x61, 0x6c, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, - 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x4c, 0x6e, 0x67, 0x12, 0x31, 0x0a, 0x15, 0x64, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x64, - 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x44, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x13, - 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x77, 0x65, 0x65, 0x6b, 0x5f, 0x64, - 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x64, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x75, 0x72, 0x65, 0x57, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x73, 0x12, 0x22, 0x0a, 0x0a, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, - 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x88, 0x01, 0x01, - 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x61, - 0x64, 0x69, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x64, 0x65, - 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, - 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x0d, 0x61, 0x72, 0x72, 0x69, - 0x76, 0x61, 0x6c, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x12, - 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x12, 0x6d, - 0x61, 0x78, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x48, 0x04, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, - 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x48, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, - 0x65, 0x6c, 0x74, 0x61, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, - 0x72, 0x65, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x72, - 0x72, 0x69, 0x76, 0x61, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x73, 0x0a, 0x1d, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, - 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x14, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, - 0x72, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x74, 0x72, 0x69, 0x70, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, - 0x72, 0x54, 0x72, 0x69, 0x70, 0x52, 0x12, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, - 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x22, 0x4f, 0x0a, 0x1b, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6b, - 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x43, 0x61, 0x72, 0x70, - 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x50, 0x0a, 0x1c, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x62, 0x6f, - 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x43, 0x61, - 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, - 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x8c, 0x01, 0x0a, - 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, - 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x43, 0x61, - 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, - 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x0a, 0x18, 0x47, - 0x65, 0x74, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6b, 0x69, - 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6f, 0x6f, - 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, - 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x6f, - 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x32, 0xb2, 0x07, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, - 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, - 0x1b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x43, + 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x22, 0x4f, 0x0a, 0x1b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, + 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x62, + 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x43, + 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x6f, 0x6f, + 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x50, 0x0a, + 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, + 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, + 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x22, + 0x8c, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, + 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x34, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, + 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x1e, + 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, + 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, + 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x19, 0x47, 0x65, 0x74, + 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, + 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, + 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x32, 0xfd, 0x07, 0x0a, 0x0e, 0x43, 0x61, 0x72, + 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x13, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x67, 0x75, - 0x6c, 0x61, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x46, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x12, 0x17, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, - 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, - 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x69, 0x70, 0x12, 0x16, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x54, - 0x72, 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, - 0x12, 0x17, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, - 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x12, 0x16, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, - 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x17, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x11, 0x50, 0x61, - 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x12, - 0x19, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, - 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x50, 0x61, 0x73, - 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, - 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x12, 0x1a, - 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, - 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x44, 0x72, 0x69, - 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x15, 0x50, 0x61, 0x73, - 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, - 0x70, 0x73, 0x12, 0x1d, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, - 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x67, - 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, - 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, - 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, - 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, - 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, - 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, - 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x12, 0x19, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, - 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x42, 0x5a, 0x40, 0x67, 0x69, - 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, - 0x67, 0x6f, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x63, 0x61, 0x72, 0x70, - 0x6f, 0x6f, 0x6c, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x67, 0x75, 0x6c, + 0x61, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x52, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x67, 0x75, + 0x6c, 0x61, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, + 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x18, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, + 0x75, 0x6c, 0x61, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x19, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x12, 0x17, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x69, 0x70, 0x12, 0x16, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x54, 0x72, 0x69, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x17, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, + 0x72, 0x6e, 0x65, 0x79, 0x73, 0x12, 0x16, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, + 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, + 0x65, 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x12, 0x19, 0x2e, + 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x65, + 0x6e, 0x67, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x12, 0x1a, 0x2e, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x15, 0x50, 0x61, 0x73, 0x73, 0x65, + 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, + 0x12, 0x1d, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, + 0x6c, 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, + 0x61, 0x72, 0x54, 0x72, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x4e, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, + 0x6e, 0x67, 0x12, 0x1c, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, + 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, + 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x4e, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x69, + 0x6e, 0x67, 0x12, 0x1c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, + 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, + 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x12, + 0x19, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x61, 0x72, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x42, 0x5a, 0x40, 0x67, 0x69, 0x74, 0x2e, + 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, + 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x63, 0x61, 0x72, 0x70, 0x6f, 0x6f, + 0x6c, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1837,95 +1944,100 @@ func file_carpool_service_proto_rawDescGZIP() []byte { return file_carpool_service_proto_rawDescData } -var file_carpool_service_proto_msgTypes = make([]protoimpl.MessageInfo, 25) +var file_carpool_service_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_carpool_service_proto_goTypes = []interface{}{ (*CreateRegularRoutesRequest)(nil), // 0: CreateRegularRoutesRequest (*CreateRegularRoutesResponse)(nil), // 1: CreateRegularRoutesResponse (*DeleteRegularRoutesRequest)(nil), // 2: DeleteRegularRoutesRequest (*DeleteRegularRoutesResponse)(nil), // 3: DeleteRegularRoutesResponse - (*GetUserPlanningRequest)(nil), // 4: GetUserPlanningRequest - (*GetUserPlanningResponse)(nil), // 5: GetUserPlanningResponse - (*GetPlannedTripRequest)(nil), // 6: GetPlannedTripRequest - (*GetPlannedTripResponse)(nil), // 7: GetPlannedTripResponse - (*GetUserBookingsRequest)(nil), // 8: GetUserBookingsRequest - (*GetUserBookingsResponse)(nil), // 9: GetUserBookingsResponse - (*DriverJourneysRequest)(nil), // 10: DriverJourneysRequest - (*DriverJourneysResponse)(nil), // 11: DriverJourneysResponse - (*PassengerJourneysRequest)(nil), // 12: PassengerJourneysRequest - (*PassengerJourneysResponse)(nil), // 13: PassengerJourneysResponse - (*DriverRegularTripsRequest)(nil), // 14: DriverRegularTripsRequest - (*DriverRegularTripsResponse)(nil), // 15: DriverRegularTripsResponse - (*PassengerRegularTripsRequest)(nil), // 16: PassengerRegularTripsRequest - (*PassengerRegularTripsResponse)(nil), // 17: PassengerRegularTripsResponse - (*CreateCarpoolBookingRequest)(nil), // 18: CreateCarpoolBookingRequest - (*CreateCarpoolBookingResponse)(nil), // 19: CreateCarpoolBookingResponse - (*UpdateCarpoolBookingRequest)(nil), // 20: UpdateCarpoolBookingRequest - (*UpdateCarpoolBookingResponse)(nil), // 21: UpdateCarpoolBookingResponse - (*GetCarpoolBookingRequest)(nil), // 22: GetCarpoolBookingRequest - (*GetCarpoolBookingResponse)(nil), // 23: GetCarpoolBookingResponse - nil, // 24: GetUserPlanningResponse.RoutesByDatesEntry - (*CarpoolFeatureCollection)(nil), // 25: CarpoolFeatureCollection - (*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp - (*CarpoolServiceBooking)(nil), // 27: CarpoolServiceBooking - (*CarpoolServiceDriverJourney)(nil), // 28: CarpoolServiceDriverJourney - (*CarpoolServicePassengerJourney)(nil), // 29: CarpoolServicePassengerJourney - (*CarpoolServiceDriverRegularTrip)(nil), // 30: CarpoolServiceDriverRegularTrip - (CarpoolServiceBookingStatus)(0), // 31: CarpoolServiceBookingStatus - (*CarpoolRoutesCollection)(nil), // 32: CarpoolRoutesCollection + (*GetRegularRoutesRequest)(nil), // 4: GetRegularRoutesRequest + (*GetRegularRoutesResponse)(nil), // 5: GetRegularRoutesResponse + (*GetUserPlanningRequest)(nil), // 6: GetUserPlanningRequest + (*GetUserPlanningResponse)(nil), // 7: GetUserPlanningResponse + (*GetPlannedTripRequest)(nil), // 8: GetPlannedTripRequest + (*GetPlannedTripResponse)(nil), // 9: GetPlannedTripResponse + (*GetUserBookingsRequest)(nil), // 10: GetUserBookingsRequest + (*GetUserBookingsResponse)(nil), // 11: GetUserBookingsResponse + (*DriverJourneysRequest)(nil), // 12: DriverJourneysRequest + (*DriverJourneysResponse)(nil), // 13: DriverJourneysResponse + (*PassengerJourneysRequest)(nil), // 14: PassengerJourneysRequest + (*PassengerJourneysResponse)(nil), // 15: PassengerJourneysResponse + (*DriverRegularTripsRequest)(nil), // 16: DriverRegularTripsRequest + (*DriverRegularTripsResponse)(nil), // 17: DriverRegularTripsResponse + (*PassengerRegularTripsRequest)(nil), // 18: PassengerRegularTripsRequest + (*PassengerRegularTripsResponse)(nil), // 19: PassengerRegularTripsResponse + (*CreateCarpoolBookingRequest)(nil), // 20: CreateCarpoolBookingRequest + (*CreateCarpoolBookingResponse)(nil), // 21: CreateCarpoolBookingResponse + (*UpdateCarpoolBookingRequest)(nil), // 22: UpdateCarpoolBookingRequest + (*UpdateCarpoolBookingResponse)(nil), // 23: UpdateCarpoolBookingResponse + (*GetCarpoolBookingRequest)(nil), // 24: GetCarpoolBookingRequest + (*GetCarpoolBookingResponse)(nil), // 25: GetCarpoolBookingResponse + nil, // 26: GetUserPlanningResponse.RoutesByDatesEntry + (*CarpoolFeatureCollection)(nil), // 27: CarpoolFeatureCollection + (*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp + (*CarpoolServiceBooking)(nil), // 29: CarpoolServiceBooking + (*CarpoolServiceDriverJourney)(nil), // 30: CarpoolServiceDriverJourney + (*CarpoolServicePassengerJourney)(nil), // 31: CarpoolServicePassengerJourney + (*CarpoolServiceDriverRegularTrip)(nil), // 32: CarpoolServiceDriverRegularTrip + (CarpoolServiceBookingStatus)(0), // 33: CarpoolServiceBookingStatus + (*CarpoolRoutesCollection)(nil), // 34: CarpoolRoutesCollection } var file_carpool_service_proto_depIdxs = []int32{ - 25, // 0: CreateRegularRoutesRequest.routes:type_name -> CarpoolFeatureCollection - 26, // 1: GetUserPlanningRequest.min_departure_date:type_name -> google.protobuf.Timestamp - 26, // 2: GetUserPlanningRequest.max_departure_date:type_name -> google.protobuf.Timestamp - 24, // 3: GetUserPlanningResponse.routes_by_dates:type_name -> GetUserPlanningResponse.RoutesByDatesEntry - 25, // 4: GetPlannedTripResponse.planned_trip:type_name -> CarpoolFeatureCollection - 26, // 5: GetUserBookingsRequest.min_date:type_name -> google.protobuf.Timestamp - 26, // 6: GetUserBookingsRequest.max_date:type_name -> google.protobuf.Timestamp - 27, // 7: GetUserBookingsResponse.bookings:type_name -> CarpoolServiceBooking - 26, // 8: DriverJourneysRequest.departure_date:type_name -> google.protobuf.Timestamp - 28, // 9: DriverJourneysResponse.driver_journeys:type_name -> CarpoolServiceDriverJourney - 26, // 10: PassengerJourneysRequest.departure_date:type_name -> google.protobuf.Timestamp - 29, // 11: PassengerJourneysResponse.passenger_journeys:type_name -> CarpoolServicePassengerJourney - 26, // 12: DriverRegularTripsRequest.min_departure_date:type_name -> google.protobuf.Timestamp - 26, // 13: DriverRegularTripsRequest.max_departure_date:type_name -> google.protobuf.Timestamp - 30, // 14: DriverRegularTripsResponse.driver_regular_trips:type_name -> CarpoolServiceDriverRegularTrip - 26, // 15: PassengerRegularTripsRequest.min_departure_date:type_name -> google.protobuf.Timestamp - 26, // 16: PassengerRegularTripsRequest.max_departure_date:type_name -> google.protobuf.Timestamp - 30, // 17: PassengerRegularTripsResponse.driver_regular_trips:type_name -> CarpoolServiceDriverRegularTrip - 27, // 18: CreateCarpoolBookingRequest.booking:type_name -> CarpoolServiceBooking - 27, // 19: CreateCarpoolBookingResponse.booking:type_name -> CarpoolServiceBooking - 31, // 20: UpdateCarpoolBookingRequest.status:type_name -> CarpoolServiceBookingStatus - 27, // 21: GetCarpoolBookingResponse.booking:type_name -> CarpoolServiceBooking - 32, // 22: GetUserPlanningResponse.RoutesByDatesEntry.value:type_name -> CarpoolRoutesCollection - 0, // 23: CarpoolService.CreateRegularRoutes:input_type -> CreateRegularRoutesRequest - 2, // 24: CarpoolService.DeleteRegularRoutes:input_type -> DeleteRegularRoutesRequest - 4, // 25: CarpoolService.GetUserPlanning:input_type -> GetUserPlanningRequest - 6, // 26: CarpoolService.GetPlannedTrip:input_type -> GetPlannedTripRequest - 8, // 27: CarpoolService.GetUserBookings:input_type -> GetUserBookingsRequest - 10, // 28: CarpoolService.DriverJourneys:input_type -> DriverJourneysRequest - 12, // 29: CarpoolService.PassengerJourneys:input_type -> PassengerJourneysRequest - 14, // 30: CarpoolService.DriverRegularTrips:input_type -> DriverRegularTripsRequest - 16, // 31: CarpoolService.PassengerRegularTrips:input_type -> PassengerRegularTripsRequest - 18, // 32: CarpoolService.CreateBooking:input_type -> CreateCarpoolBookingRequest - 20, // 33: CarpoolService.UpdateBooking:input_type -> UpdateCarpoolBookingRequest - 22, // 34: CarpoolService.GetBooking:input_type -> GetCarpoolBookingRequest - 1, // 35: CarpoolService.CreateRegularRoutes:output_type -> CreateRegularRoutesResponse - 3, // 36: CarpoolService.DeleteRegularRoutes:output_type -> DeleteRegularRoutesResponse - 5, // 37: CarpoolService.GetUserPlanning:output_type -> GetUserPlanningResponse - 7, // 38: CarpoolService.GetPlannedTrip:output_type -> GetPlannedTripResponse - 9, // 39: CarpoolService.GetUserBookings:output_type -> GetUserBookingsResponse - 11, // 40: CarpoolService.DriverJourneys:output_type -> DriverJourneysResponse - 13, // 41: CarpoolService.PassengerJourneys:output_type -> PassengerJourneysResponse - 15, // 42: CarpoolService.DriverRegularTrips:output_type -> DriverRegularTripsResponse - 17, // 43: CarpoolService.PassengerRegularTrips:output_type -> PassengerRegularTripsResponse - 19, // 44: CarpoolService.CreateBooking:output_type -> CreateCarpoolBookingResponse - 21, // 45: CarpoolService.UpdateBooking:output_type -> UpdateCarpoolBookingResponse - 23, // 46: CarpoolService.GetBooking:output_type -> GetCarpoolBookingResponse - 35, // [35:47] is the sub-list for method output_type - 23, // [23:35] is the sub-list for method input_type - 23, // [23:23] is the sub-list for extension type_name - 23, // [23:23] is the sub-list for extension extendee - 0, // [0:23] is the sub-list for field type_name + 27, // 0: CreateRegularRoutesRequest.routes:type_name -> CarpoolFeatureCollection + 27, // 1: GetRegularRoutesResponse.routes:type_name -> CarpoolFeatureCollection + 28, // 2: GetUserPlanningRequest.min_departure_date:type_name -> google.protobuf.Timestamp + 28, // 3: GetUserPlanningRequest.max_departure_date:type_name -> google.protobuf.Timestamp + 26, // 4: GetUserPlanningResponse.routes_by_dates:type_name -> GetUserPlanningResponse.RoutesByDatesEntry + 27, // 5: GetPlannedTripResponse.planned_trip:type_name -> CarpoolFeatureCollection + 28, // 6: GetUserBookingsRequest.min_date:type_name -> google.protobuf.Timestamp + 28, // 7: GetUserBookingsRequest.max_date:type_name -> google.protobuf.Timestamp + 29, // 8: GetUserBookingsResponse.bookings:type_name -> CarpoolServiceBooking + 28, // 9: DriverJourneysRequest.departure_date:type_name -> google.protobuf.Timestamp + 30, // 10: DriverJourneysResponse.driver_journeys:type_name -> CarpoolServiceDriverJourney + 28, // 11: PassengerJourneysRequest.departure_date:type_name -> google.protobuf.Timestamp + 31, // 12: PassengerJourneysResponse.passenger_journeys:type_name -> CarpoolServicePassengerJourney + 28, // 13: DriverRegularTripsRequest.min_departure_date:type_name -> google.protobuf.Timestamp + 28, // 14: DriverRegularTripsRequest.max_departure_date:type_name -> google.protobuf.Timestamp + 32, // 15: DriverRegularTripsResponse.driver_regular_trips:type_name -> CarpoolServiceDriverRegularTrip + 28, // 16: PassengerRegularTripsRequest.min_departure_date:type_name -> google.protobuf.Timestamp + 28, // 17: PassengerRegularTripsRequest.max_departure_date:type_name -> google.protobuf.Timestamp + 32, // 18: PassengerRegularTripsResponse.driver_regular_trips:type_name -> CarpoolServiceDriverRegularTrip + 29, // 19: CreateCarpoolBookingRequest.booking:type_name -> CarpoolServiceBooking + 29, // 20: CreateCarpoolBookingResponse.booking:type_name -> CarpoolServiceBooking + 33, // 21: UpdateCarpoolBookingRequest.status:type_name -> CarpoolServiceBookingStatus + 29, // 22: GetCarpoolBookingResponse.booking:type_name -> CarpoolServiceBooking + 34, // 23: GetUserPlanningResponse.RoutesByDatesEntry.value:type_name -> CarpoolRoutesCollection + 0, // 24: CarpoolService.CreateRegularRoutes:input_type -> CreateRegularRoutesRequest + 2, // 25: CarpoolService.DeleteRegularRoutes:input_type -> DeleteRegularRoutesRequest + 4, // 26: CarpoolService.GetRegularRoutes:input_type -> GetRegularRoutesRequest + 6, // 27: CarpoolService.GetUserPlanning:input_type -> GetUserPlanningRequest + 8, // 28: CarpoolService.GetPlannedTrip:input_type -> GetPlannedTripRequest + 10, // 29: CarpoolService.GetUserBookings:input_type -> GetUserBookingsRequest + 12, // 30: CarpoolService.DriverJourneys:input_type -> DriverJourneysRequest + 14, // 31: CarpoolService.PassengerJourneys:input_type -> PassengerJourneysRequest + 16, // 32: CarpoolService.DriverRegularTrips:input_type -> DriverRegularTripsRequest + 18, // 33: CarpoolService.PassengerRegularTrips:input_type -> PassengerRegularTripsRequest + 20, // 34: CarpoolService.CreateBooking:input_type -> CreateCarpoolBookingRequest + 22, // 35: CarpoolService.UpdateBooking:input_type -> UpdateCarpoolBookingRequest + 24, // 36: CarpoolService.GetBooking:input_type -> GetCarpoolBookingRequest + 1, // 37: CarpoolService.CreateRegularRoutes:output_type -> CreateRegularRoutesResponse + 3, // 38: CarpoolService.DeleteRegularRoutes:output_type -> DeleteRegularRoutesResponse + 5, // 39: CarpoolService.GetRegularRoutes:output_type -> GetRegularRoutesResponse + 7, // 40: CarpoolService.GetUserPlanning:output_type -> GetUserPlanningResponse + 9, // 41: CarpoolService.GetPlannedTrip:output_type -> GetPlannedTripResponse + 11, // 42: CarpoolService.GetUserBookings:output_type -> GetUserBookingsResponse + 13, // 43: CarpoolService.DriverJourneys:output_type -> DriverJourneysResponse + 15, // 44: CarpoolService.PassengerJourneys:output_type -> PassengerJourneysResponse + 17, // 45: CarpoolService.DriverRegularTrips:output_type -> DriverRegularTripsResponse + 19, // 46: CarpoolService.PassengerRegularTrips:output_type -> PassengerRegularTripsResponse + 21, // 47: CarpoolService.CreateBooking:output_type -> CreateCarpoolBookingResponse + 23, // 48: CarpoolService.UpdateBooking:output_type -> UpdateCarpoolBookingResponse + 25, // 49: CarpoolService.GetBooking:output_type -> GetCarpoolBookingResponse + 37, // [37:50] is the sub-list for method output_type + 24, // [24:37] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name } func init() { file_carpool_service_proto_init() } @@ -1984,7 +2096,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserPlanningRequest); i { + switch v := v.(*GetRegularRoutesRequest); i { case 0: return &v.state case 1: @@ -1996,7 +2108,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserPlanningResponse); i { + switch v := v.(*GetRegularRoutesResponse); i { case 0: return &v.state case 1: @@ -2008,7 +2120,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPlannedTripRequest); i { + switch v := v.(*GetUserPlanningRequest); i { case 0: return &v.state case 1: @@ -2020,7 +2132,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPlannedTripResponse); i { + switch v := v.(*GetUserPlanningResponse); i { case 0: return &v.state case 1: @@ -2032,7 +2144,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserBookingsRequest); i { + switch v := v.(*GetPlannedTripRequest); i { case 0: return &v.state case 1: @@ -2044,7 +2156,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserBookingsResponse); i { + switch v := v.(*GetPlannedTripResponse); i { case 0: return &v.state case 1: @@ -2056,7 +2168,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverJourneysRequest); i { + switch v := v.(*GetUserBookingsRequest); i { case 0: return &v.state case 1: @@ -2068,7 +2180,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverJourneysResponse); i { + switch v := v.(*GetUserBookingsResponse); i { case 0: return &v.state case 1: @@ -2080,7 +2192,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PassengerJourneysRequest); i { + switch v := v.(*DriverJourneysRequest); i { case 0: return &v.state case 1: @@ -2092,7 +2204,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PassengerJourneysResponse); i { + switch v := v.(*DriverJourneysResponse); i { case 0: return &v.state case 1: @@ -2104,7 +2216,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverRegularTripsRequest); i { + switch v := v.(*PassengerJourneysRequest); i { case 0: return &v.state case 1: @@ -2116,7 +2228,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverRegularTripsResponse); i { + switch v := v.(*PassengerJourneysResponse); i { case 0: return &v.state case 1: @@ -2128,7 +2240,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PassengerRegularTripsRequest); i { + switch v := v.(*DriverRegularTripsRequest); i { case 0: return &v.state case 1: @@ -2140,7 +2252,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PassengerRegularTripsResponse); i { + switch v := v.(*DriverRegularTripsResponse); i { case 0: return &v.state case 1: @@ -2152,7 +2264,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateCarpoolBookingRequest); i { + switch v := v.(*PassengerRegularTripsRequest); i { case 0: return &v.state case 1: @@ -2164,7 +2276,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateCarpoolBookingResponse); i { + switch v := v.(*PassengerRegularTripsResponse); i { case 0: return &v.state case 1: @@ -2176,7 +2288,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateCarpoolBookingRequest); i { + switch v := v.(*CreateCarpoolBookingRequest); i { case 0: return &v.state case 1: @@ -2188,7 +2300,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateCarpoolBookingResponse); i { + switch v := v.(*CreateCarpoolBookingResponse); i { case 0: return &v.state case 1: @@ -2200,7 +2312,7 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCarpoolBookingRequest); i { + switch v := v.(*UpdateCarpoolBookingRequest); i { case 0: return &v.state case 1: @@ -2212,6 +2324,30 @@ func file_carpool_service_proto_init() { } } file_carpool_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateCarpoolBookingResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_carpool_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCarpoolBookingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_carpool_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCarpoolBookingResponse); i { case 0: return &v.state @@ -2224,18 +2360,18 @@ func file_carpool_service_proto_init() { } } } - file_carpool_service_proto_msgTypes[8].OneofWrappers = []interface{}{} file_carpool_service_proto_msgTypes[10].OneofWrappers = []interface{}{} file_carpool_service_proto_msgTypes[12].OneofWrappers = []interface{}{} file_carpool_service_proto_msgTypes[14].OneofWrappers = []interface{}{} file_carpool_service_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_carpool_service_proto_msgTypes[18].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_carpool_service_proto_rawDesc, NumEnums: 0, - NumMessages: 25, + NumMessages: 27, NumExtensions: 0, NumServices: 1, }, diff --git a/servers/grpc/proto/carpool-service.proto b/servers/grpc/proto/carpool-service.proto index f856722..abdde7f 100644 --- a/servers/grpc/proto/carpool-service.proto +++ b/servers/grpc/proto/carpool-service.proto @@ -10,6 +10,7 @@ service CarpoolService { // rpc XXXX(Request) returns (Response) {} rpc CreateRegularRoutes(CreateRegularRoutesRequest) returns (CreateRegularRoutesResponse) {} rpc DeleteRegularRoutes(DeleteRegularRoutesRequest) returns (DeleteRegularRoutesResponse) {} + rpc GetRegularRoutes(GetRegularRoutesRequest) returns (GetRegularRoutesResponse) {} rpc GetUserPlanning(GetUserPlanningRequest) returns (GetUserPlanningResponse) {} rpc GetPlannedTrip(GetPlannedTripRequest) returns (GetPlannedTripResponse) {} rpc GetUserBookings(GetUserBookingsRequest) returns (GetUserBookingsResponse) {} @@ -37,6 +38,14 @@ message DeleteRegularRoutesRequest { message DeleteRegularRoutesResponse {} +message GetRegularRoutesRequest { + string user_id = 1; +} + +message GetRegularRoutesResponse { + repeated CarpoolFeatureCollection routes = 1; +} + message GetUserPlanningRequest { string user_id = 1; google.protobuf.Timestamp min_departure_date = 2; diff --git a/servers/grpc/proto/carpool-service_grpc.pb.go b/servers/grpc/proto/carpool-service_grpc.pb.go index d09e596..06e6c73 100644 --- a/servers/grpc/proto/carpool-service_grpc.pb.go +++ b/servers/grpc/proto/carpool-service_grpc.pb.go @@ -21,6 +21,7 @@ const _ = grpc.SupportPackageIsVersion7 const ( CarpoolService_CreateRegularRoutes_FullMethodName = "/CarpoolService/CreateRegularRoutes" CarpoolService_DeleteRegularRoutes_FullMethodName = "/CarpoolService/DeleteRegularRoutes" + CarpoolService_GetRegularRoutes_FullMethodName = "/CarpoolService/GetRegularRoutes" CarpoolService_GetUserPlanning_FullMethodName = "/CarpoolService/GetUserPlanning" CarpoolService_GetPlannedTrip_FullMethodName = "/CarpoolService/GetPlannedTrip" CarpoolService_GetUserBookings_FullMethodName = "/CarpoolService/GetUserBookings" @@ -41,6 +42,7 @@ type CarpoolServiceClient interface { // rpc XXXX(Request) returns (Response) {} CreateRegularRoutes(ctx context.Context, in *CreateRegularRoutesRequest, opts ...grpc.CallOption) (*CreateRegularRoutesResponse, error) DeleteRegularRoutes(ctx context.Context, in *DeleteRegularRoutesRequest, opts ...grpc.CallOption) (*DeleteRegularRoutesResponse, error) + GetRegularRoutes(ctx context.Context, in *GetRegularRoutesRequest, opts ...grpc.CallOption) (*GetRegularRoutesResponse, error) GetUserPlanning(ctx context.Context, in *GetUserPlanningRequest, opts ...grpc.CallOption) (*GetUserPlanningResponse, error) GetPlannedTrip(ctx context.Context, in *GetPlannedTripRequest, opts ...grpc.CallOption) (*GetPlannedTripResponse, error) GetUserBookings(ctx context.Context, in *GetUserBookingsRequest, opts ...grpc.CallOption) (*GetUserBookingsResponse, error) @@ -80,6 +82,15 @@ func (c *carpoolServiceClient) DeleteRegularRoutes(ctx context.Context, in *Dele return out, nil } +func (c *carpoolServiceClient) GetRegularRoutes(ctx context.Context, in *GetRegularRoutesRequest, opts ...grpc.CallOption) (*GetRegularRoutesResponse, error) { + out := new(GetRegularRoutesResponse) + err := c.cc.Invoke(ctx, CarpoolService_GetRegularRoutes_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *carpoolServiceClient) GetUserPlanning(ctx context.Context, in *GetUserPlanningRequest, opts ...grpc.CallOption) (*GetUserPlanningResponse, error) { out := new(GetUserPlanningResponse) err := c.cc.Invoke(ctx, CarpoolService_GetUserPlanning_FullMethodName, in, out, opts...) @@ -178,6 +189,7 @@ type CarpoolServiceServer interface { // rpc XXXX(Request) returns (Response) {} CreateRegularRoutes(context.Context, *CreateRegularRoutesRequest) (*CreateRegularRoutesResponse, error) DeleteRegularRoutes(context.Context, *DeleteRegularRoutesRequest) (*DeleteRegularRoutesResponse, error) + GetRegularRoutes(context.Context, *GetRegularRoutesRequest) (*GetRegularRoutesResponse, error) GetUserPlanning(context.Context, *GetUserPlanningRequest) (*GetUserPlanningResponse, error) GetPlannedTrip(context.Context, *GetPlannedTripRequest) (*GetPlannedTripResponse, error) GetUserBookings(context.Context, *GetUserBookingsRequest) (*GetUserBookingsResponse, error) @@ -202,6 +214,9 @@ func (UnimplementedCarpoolServiceServer) CreateRegularRoutes(context.Context, *C func (UnimplementedCarpoolServiceServer) DeleteRegularRoutes(context.Context, *DeleteRegularRoutesRequest) (*DeleteRegularRoutesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteRegularRoutes not implemented") } +func (UnimplementedCarpoolServiceServer) GetRegularRoutes(context.Context, *GetRegularRoutesRequest) (*GetRegularRoutesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRegularRoutes not implemented") +} func (UnimplementedCarpoolServiceServer) GetUserPlanning(context.Context, *GetUserPlanningRequest) (*GetUserPlanningResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUserPlanning not implemented") } @@ -281,6 +296,24 @@ func _CarpoolService_DeleteRegularRoutes_Handler(srv interface{}, ctx context.Co return interceptor(ctx, in, info, handler) } +func _CarpoolService_GetRegularRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRegularRoutesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CarpoolServiceServer).GetRegularRoutes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CarpoolService_GetRegularRoutes_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CarpoolServiceServer).GetRegularRoutes(ctx, req.(*GetRegularRoutesRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _CarpoolService_GetUserPlanning_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetUserPlanningRequest) if err := dec(in); err != nil { @@ -476,6 +509,10 @@ var CarpoolService_ServiceDesc = grpc.ServiceDesc{ MethodName: "DeleteRegularRoutes", Handler: _CarpoolService_DeleteRegularRoutes_Handler, }, + { + MethodName: "GetRegularRoutes", + Handler: _CarpoolService_GetRegularRoutes_Handler, + }, { MethodName: "GetUserPlanning", Handler: _CarpoolService_GetUserPlanning_Handler, diff --git a/servers/grpc/server/management.go b/servers/grpc/server/management.go index 2c259ba..17775a4 100644 --- a/servers/grpc/server/management.go +++ b/servers/grpc/server/management.go @@ -32,12 +32,42 @@ func (s *CarpoolServiceServerImpl) CreateRegularRoutes(ctx context.Context, req return &proto.CreateRegularRoutesResponse{}, nil } -func (s *CarpoolServiceServerImpl) DeleteRegularRoutes(context.Context, *proto.DeleteRegularRoutesRequest) (*proto.DeleteRegularRoutesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteTrips not implemented") +func (s *CarpoolServiceServerImpl) DeleteRegularRoutes(ctx context.Context, req *proto.DeleteRegularRoutesRequest) (*proto.DeleteRegularRoutesResponse, error) { + err := s.Handler.DeleteRegularRoutes(req.Ids) + if err != nil { + return nil, err + } + return &proto.DeleteRegularRoutesResponse{}, nil +} + +func (s *CarpoolServiceServerImpl) GetRegularRoutes(ctx context.Context, req *proto.GetRegularRoutesRequest) (*proto.GetRegularRoutesResponse, error) { + log.Debug().Msg("grpc CarpoolService - GetRegularRoutes") + + routes, err := s.Handler.GetUserRegularRoutes(req.UserId) + if err != nil { + return nil, status.Errorf(codes.Internal, "could not retrieve user routes : %s", err.Error()) + } + + results := []*proto.CarpoolFeatureCollection{} + + for _, r := range routes { + serialized, err := r.MarshalJSON() + if err != nil { + log.Error().Err(err).Msg("error marshaling route") + continue + } + results = append(results, &proto.CarpoolFeatureCollection{ + Serialized: string(serialized), + }) + } + + return &proto.GetRegularRoutesResponse{ + Routes: results, + }, nil } func (s *CarpoolServiceServerImpl) GetUserPlanning(ctx context.Context, req *proto.GetUserPlanningRequest) (*proto.GetUserPlanningResponse, error) { - log.Debug().Msg("grpc CarpoolService - GetRegularUserRoutes") + log.Debug().Msg("grpc CarpoolService - GetUserPlanning") planned_schedules, missing_planning, err := s.Handler.GetUserPlanning(req.UserId, req.MinDepartureDate.AsTime(), req.MaxDepartureDate.AsTime()) if err != nil { diff --git a/servers/grpc/server/search.go b/servers/grpc/server/search.go index a20692b..cea492a 100644 --- a/servers/grpc/server/search.go +++ b/servers/grpc/server/search.go @@ -71,12 +71,22 @@ func (s *CarpoolServiceServerImpl) DriverJourneys(ctx context.Context, req *prot distance = &dist } + operator := "internal" + if usermap["operator"] != nil { + operator = usermap["operator"].(string) + } + + alias := "" + if usermap["alias"] != nil { + alias = usermap["alias"].(string) + } + results = append(results, &proto.CarpoolServiceDriverJourney{ Id: journeyId, Driver: &proto.CarpoolServiceUser{ Id: usermap["id"].(string), - Operator: usermap["operator"].(string), - Alias: usermap["alias"].(string), + Operator: operator, + Alias: alias, }, Operator: s.Handler.InternalOperatorID, PassengerPickupLat: req.DepartureLat, diff --git a/storage/mongodb.go b/storage/mongodb.go index d82fe78..1330ab6 100644 --- a/storage/mongodb.go +++ b/storage/mongodb.go @@ -46,7 +46,6 @@ func NewMongoDBStorage(cfg *viper.Viper) (MongoDBStorage, error) { } err = client.Connect(context.TODO()) - if err != nil { return MongoDBStorage{}, err } @@ -68,7 +67,6 @@ func NewMongoDBStorage(cfg *viper.Viper) (MongoDBStorage, error) { } func (s MongoDBStorage) CreateRegularRoutes(routes []*geojson.FeatureCollection) error { - log.Debug().Msg("Storage - CreateRegularRoutes") documents := []any{} @@ -180,6 +178,15 @@ func (s MongoDBStorage) GetDriverRegularRoutesForTile(day string, gridId int64) return results, nil } +func (s MongoDBStorage) DeleteRegularRoutes(ids []string) error { + collection := s.Client.Database(s.DbName).Collection(s.Collections["regular_routes"]) + _, err := collection.DeleteMany(context.Background(), bson.M{"_id": bson.M{"$in": ids}}) + if err != nil { + log.Error().Err(err).Msg("error deleteing regular routes") + } + return err +} + func (s MongoDBStorage) GetPassengerRegularRoutesForTile(day string, gridId int64) ([]*geojson.FeatureCollection, error) { findOptions := options.Find() collection := s.Client.Database(s.DbName).Collection(s.Collections["regular_routes"]) @@ -224,7 +231,6 @@ func (s MongoDBStorage) GetPassengerRegularRoutesForTile(day string, gridId int6 } func (s MongoDBStorage) CreateBooking(booking internal.Booking) error { - collection := s.Client.Database(s.DbName).Collection(s.Collections["bookings"]) _, err := collection.InsertOne(context.TODO(), booking) if err != nil { @@ -232,6 +238,7 @@ func (s MongoDBStorage) CreateBooking(booking internal.Booking) error { } return nil } + func (s MongoDBStorage) GetBooking(id string) (booking *internal.Booking, err error) { var b internal.Booking log.Debug().Str("booking id", id).Msg("get booking in DB") @@ -274,7 +281,7 @@ func (s MongoDBStorage) GetUserBookings(userid string) ([]internal.Booking, erro } func (s MongoDBStorage) UpdateBookingStatus(bookingid string, status string) error { - //TODO implement UpdateBookingStatus + // TODO implement UpdateBookingStatus return errors.New("MongoDB Storage - UpdateBookingStatus not implemented") } @@ -286,6 +293,7 @@ func (s MongoDBStorage) PersistedKVPut(documents []any) error { return nil } + func (s MongoDBStorage) PersistedKVGet(id string, document any) error { collection := s.Client.Database(s.DbName).Collection(s.Collections["persisted_kv"]) err := collection.FindOne(context.TODO(), bson.M{"_id": id}).Decode(document) @@ -296,7 +304,6 @@ func (s MongoDBStorage) PersistedKVGet(id string, document any) error { } func (s MongoDBStorage) StoreRouteSchedules(js []internal.PlannedRouteSchedule) error { - log.Debug().Msg("Storage - StoreRouteSchedules") documents := []any{} @@ -308,7 +315,6 @@ func (s MongoDBStorage) StoreRouteSchedules(js []internal.PlannedRouteSchedule) } func (s MongoDBStorage) GetRouteSchedule(id string) (*internal.PlannedRouteSchedule, error) { - var result internal.PlannedRouteSchedule err := s.PersistedKVGet(id, &result) if err != nil { diff --git a/storage/postgresql.go b/storage/postgresql.go index 8faba2c..c26b474 100644 --- a/storage/postgresql.go +++ b/storage/postgresql.go @@ -68,7 +68,6 @@ func NewPostgresqlStorage(cfg *viper.Viper) (PostgresqlStorage, error) { } func (s PostgresqlStorage) CreateRegularRoutes(routes []*geojson.FeatureCollection) error { - log.Debug().Msg("Postgresql Storage - CreateRegularRoutes") tx, err := s.DbConnection.Begin() @@ -175,6 +174,15 @@ func (s PostgresqlStorage) GetUserRegularRoutes(userid string) ([]*geojson.Featu return results, nil } +func (s PostgresqlStorage) DeleteRegularRoutes(ids []string) error { + req := fmt.Sprintf(`delete from %s where id in $1`, s.Tables["regular_routes"]) + _, err := s.DbConnection.Exec(req, ids) + if err != nil { + log.Error().Err(err).Msg("error in postgresql request - delete regular routes") + } + return err +} + func (s PostgresqlStorage) GetDriverRegularRoutesForTile(day string, gridId int64) (regular_routes []*geojson.FeatureCollection, err error) { req := fmt.Sprintf(`select id, route from %s inner join %s on id = route_id @@ -434,8 +442,8 @@ func (s PostgresqlStorage) StoreRouteSchedules(journeys []internal.PlannedRouteS } return nil - } + func (s PostgresqlStorage) GetRouteSchedule(id string) (*internal.PlannedRouteSchedule, error) { req := fmt.Sprintf("select data from %s where id = $1", s.Tables["journeys_cache"]) var jsonjourney []byte diff --git a/storage/storage.go b/storage/storage.go index 8d5b71c..96ba02d 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -11,6 +11,7 @@ import ( type Storage interface { CreateRegularRoutes([]*geojson.FeatureCollection) error GetUserRegularRoutes(userid string) ([]*geojson.FeatureCollection, error) + DeleteRegularRoutes(ids []string) error GetDriverRegularRoutesForTile(day string, gridId int64) ([]*geojson.FeatureCollection, error) GetPassengerRegularRoutesForTile(day string, gridId int64) ([]*geojson.FeatureCollection, error) @@ -29,9 +30,7 @@ type Storage interface { } func NewStorage(cfg *viper.Viper) (Storage, error) { - var ( - storage_type = cfg.GetString("storage.db.type") - ) + storage_type := cfg.GetString("storage.db.type") switch storage_type { case "mongodb":