diff --git a/config.go b/config.go index 6898b91..e7787c1 100644 --- a/config.go +++ b/config.go @@ -35,6 +35,14 @@ func ReadConfig() (*viper.Viper, error) { "type": "valhalla", "base_url": "https://valhalla.coopgo.io", }, + "parameters": map[string]any{ + "limits": map[string]any{ + "distance": map[string]any{ + "min": 4, + "max": 200, + }, + }, + }, } v := viper.New() diff --git a/handler/bookings.go b/handler/bookings.go index 5fc1251..a226d69 100644 --- a/handler/bookings.go +++ b/handler/bookings.go @@ -9,7 +9,7 @@ import ( "github.com/rs/zerolog/log" ) -func (h Handler) BookDriverJourney(passengerid string, driverid string, journeyid string) (*types.Booking, error) { +func (h Handler) BookDriverJourney(passengerid string, driverid string, journeyid string, returnWaitingDuration time.Duration) (*types.Booking, error) { journey, err := h.Storage.GetDriverJourney(journeyid) if err != nil { log.Error().Err(err).Msg("could not find driver journey") @@ -21,12 +21,13 @@ func (h Handler) BookDriverJourney(passengerid string, driverid string, journeyi } booking := types.Booking{ - Id: uuid.NewString(), - GroupId: uuid.NewString(), - Status: "WAITING_CONFIRMATION", - PassengerId: passengerid, - DriverId: driverid, - Journey: journey, + Id: uuid.NewString(), + GroupId: uuid.NewString(), + Status: "WAITING_CONFIRMATION", + PassengerId: passengerid, + DriverId: driverid, + Journey: journey, + ReturnWaitingDuration: returnWaitingDuration, } if err := h.Storage.CreateBooking(booking); err != nil { diff --git a/handler/journeys.go b/handler/journeys.go index 7512636..01bb1a4 100644 --- a/handler/journeys.go +++ b/handler/journeys.go @@ -4,6 +4,7 @@ import ( "errors" "time" + "git.coopgo.io/coopgo-platform/routing-service" "git.coopgo.io/coopgo-platform/solidarity-transport/types" "github.com/google/uuid" "github.com/paulmach/orb" @@ -11,7 +12,9 @@ import ( "github.com/rs/zerolog/log" ) -func (h *Handler) GetDriverJourneys(departure *geojson.Feature, arrival *geojson.Feature, departureDate time.Time) ([]*types.DriverJourney, error) { +func (h *Handler) GetDriverJourneys(departure *geojson.Feature, arrival *geojson.Feature, departureDate time.Time, noreturn bool) ([]*types.DriverJourney, error) { + minDistance := h.Config.GetInt64("parameters.limits.distance.min") + maxDistance := h.Config.GetInt64("parameters.limits.distance.max") day := int(departureDate.Weekday()) timeInDay := departureDate.Format("15:04") driverJourneys := []*types.DriverJourney{} @@ -26,14 +29,27 @@ func (h *Handler) GetDriverJourneys(departure *geojson.Feature, arrival *geojson for _, a := range availabilities { log.Debug().Any("availability", a).Msg("Availability found") if a.Address != nil { - route, err := h.Routing.Route( - []orb.Point{ - a.Address.Point(), - departure.Point(), - arrival.Point(), - a.Address.Point(), - }, - ) + var route *routing.Route + if noreturn { + route, err = h.Routing.Route( + []orb.Point{ + a.Address.Point(), + departure.Point(), + arrival.Point(), + a.Address.Point(), + }, + ) + } else { + route, err = h.Routing.Route( + []orb.Point{ + a.Address.Point(), + departure.Point(), + arrival.Point(), + departure.Point(), + a.Address.Point(), + }, + ) + } if err != nil { log.Error().Err(err).Msg("failedcomputing route request") continue @@ -41,12 +57,17 @@ func (h *Handler) GetDriverJourneys(departure *geojson.Feature, arrival *geojson log.Debug().Any("route", route).Msg("debug route") + passengerDistance := int64(route.Legs[1].Distance) + if !noreturn { + passengerDistance = passengerDistance + int64(route.Legs[2].Distance) + } + driverJourney := &types.DriverJourney{ Id: uuid.NewString(), DriverId: a.DriverId, PassengerPickup: departure, PassengerDrop: arrival, - PassengerDistance: int64(route.Legs[1].Distance), + PassengerDistance: passengerDistance, DriverDeparture: a.Address, DriverArrival: a.Address, DriverDistance: int64(route.Distance), @@ -58,8 +79,11 @@ func (h *Handler) GetDriverJourneys(departure *geojson.Feature, arrival *geojson Currency: "EUR", Amount: 0, }, + Noreturn: noreturn, + } + if driverJourney.PassengerDistance >= minDistance && driverJourney.PassengerDistance <= maxDistance { + driverJourneys = append(driverJourneys, driverJourney) } - driverJourneys = append(driverJourneys, driverJourney) } } @@ -83,3 +107,52 @@ func (h Handler) GetDriverJourney(driverid string, journeyid string) (*types.Dri return journey, nil } + +func (h Handler) ToggleDriverJourneyNoreturn(journeyid string) error { + journey, err := h.Storage.GetDriverJourney(journeyid) + if err != nil { + log.Error().Err(err).Msg("error retrieving journey") + return err + } + + if journey.Noreturn { + journey.Noreturn = false + route, err := h.Routing.Route( + []orb.Point{ + journey.DriverDeparture.Point(), + journey.PassengerPickup.Point(), + journey.PassengerDrop.Point(), + journey.PassengerPickup.Point(), + journey.DriverDeparture.Point(), + }, + ) + if err != nil { + log.Error().Err(err).Msg("error in route calculation") + return err + } + journey.PassengerDistance = int64(route.Legs[1].Distance) + int64(route.Legs[2].Distance) + journey.DriverDistance = int64(route.Distance) + journey.Duration = route.Legs[1].Duration + route.Legs[2].Duration + } else { + journey.Noreturn = true + route, err := h.Routing.Route( + []orb.Point{ + journey.DriverDeparture.Point(), + journey.PassengerPickup.Point(), + journey.PassengerDrop.Point(), + journey.DriverDeparture.Point(), + }, + ) + if err != nil { + log.Error().Err(err).Msg("error in route calculation") + return err + } + journey.PassengerDistance = int64(route.Legs[1].Distance) + journey.DriverDistance = int64(route.Distance) + journey.Duration = route.Legs[1].Duration + } + log.Debug().Any("journey", journey).Msg("journey update") + + err = h.Storage.UpdateDriverJourney(*journey) + return err +} diff --git a/servers/grpc/proto/gen/solidarity-transport-types.pb.go b/servers/grpc/proto/gen/solidarity-transport-types.pb.go index 7130dac..ff8e830 100644 --- a/servers/grpc/proto/gen/solidarity-transport-types.pb.go +++ b/servers/grpc/proto/gen/solidarity-transport-types.pb.go @@ -220,6 +220,7 @@ type SolidarityTransportDriverJourney struct { PassengerPickupDate *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=passenger_pickup_date,json=passengerPickupDate,proto3" json:"passenger_pickup_date,omitempty"` DriverDepartureDate *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=driver_departure_date,json=driverDepartureDate,proto3,oneof" json:"driver_departure_date,omitempty"` Price *SolidarityTransportPrice `protobuf:"bytes,13,opt,name=price,proto3,oneof" json:"price,omitempty"` + Noreturn bool `protobuf:"varint,14,opt,name=noreturn,proto3" json:"noreturn,omitempty"` } func (x *SolidarityTransportDriverJourney) Reset() { @@ -345,6 +346,13 @@ func (x *SolidarityTransportDriverJourney) GetPrice() *SolidarityTransportPrice return nil } +func (x *SolidarityTransportDriverJourney) GetNoreturn() bool { + if x != nil { + return x.Noreturn + } + return false +} + type SolidarityTransportPrice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -405,12 +413,13 @@ type SolidarityTransportBooking struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - GroupId string `protobuf:"bytes,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` - DriverId string `protobuf:"bytes,3,opt,name=driver_id,json=driverId,proto3" json:"driver_id,omitempty"` - PassengerId string `protobuf:"bytes,4,opt,name=passenger_id,json=passengerId,proto3" json:"passenger_id,omitempty"` - Status string `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` - Journey *SolidarityTransportDriverJourney `protobuf:"bytes,10,opt,name=journey,proto3" json:"journey,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + GroupId string `protobuf:"bytes,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` + DriverId string `protobuf:"bytes,3,opt,name=driver_id,json=driverId,proto3" json:"driver_id,omitempty"` + PassengerId string `protobuf:"bytes,4,opt,name=passenger_id,json=passengerId,proto3" json:"passenger_id,omitempty"` + Status string `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` + ReturnWaitingDuration int64 `protobuf:"varint,6,opt,name=return_waiting_duration,json=returnWaitingDuration,proto3" json:"return_waiting_duration,omitempty"` + Journey *SolidarityTransportDriverJourney `protobuf:"bytes,10,opt,name=journey,proto3" json:"journey,omitempty"` } func (x *SolidarityTransportBooking) Reset() { @@ -480,6 +489,13 @@ func (x *SolidarityTransportBooking) GetStatus() string { return "" } +func (x *SolidarityTransportBooking) GetReturnWaitingDuration() int64 { + if x != nil { + return x.ReturnWaitingDuration + } + return 0 +} + func (x *SolidarityTransportBooking) GetJourney() *SolidarityTransportDriverJourney { if x != nil { return x.Journey @@ -513,7 +529,7 @@ var file_solidarity_transport_types_proto_rawDesc = []byte{ 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x47, 0x65, 0x6f, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x22, 0xef, 0x05, 0x0a, 0x20, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, + 0x65, 0x73, 0x73, 0x22, 0x8b, 0x06, 0x0a, 0x20, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x72, 0x69, 0x76, @@ -556,35 +572,40 @@ var file_solidarity_transport_types_proto_rawDesc = []byte{ 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x48, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, - 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, - 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x22, 0x4e, 0x0a, 0x18, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, - 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x63, 0x79, 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, - 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, - 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, - 0x1b, 0x0a, 0x09, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, - 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, - 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x6f, 0x6c, 0x69, 0x64, - 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x07, 0x6a, 0x6f, 0x75, - 0x72, 0x6e, 0x65, 0x79, 0x42, 0x4b, 0x5a, 0x49, 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, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, - 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, - 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x48, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, + 0x6e, 0x6f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x6e, 0x6f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6a, 0x6f, 0x75, + 0x72, 0x6e, 0x65, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x22, 0x4e, 0x0a, 0x18, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x79, 0x22, 0x94, 0x02, 0x0a, 0x1a, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x73, + 0x65, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x77, 0x61, + 0x69, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x57, 0x61, 0x69, 0x74, + 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x07, 0x6a, + 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, + 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, + 0x07, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x42, 0x4b, 0x5a, 0x49, 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, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, + 0x72, 0x69, 0x74, 0x79, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/servers/grpc/proto/gen/solidarity-transport.pb.go b/servers/grpc/proto/gen/solidarity-transport.pb.go index 2fff635..d52f432 100644 --- a/servers/grpc/proto/gen/solidarity-transport.pb.go +++ b/servers/grpc/proto/gen/solidarity-transport.pb.go @@ -419,6 +419,7 @@ type GetDriverJourneysRequest struct { Arrival *GeoJsonFeature `protobuf:"bytes,3,opt,name=arrival,proto3" json:"arrival,omitempty"` DepartureDate *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=departure_date,json=departureDate,proto3" json:"departure_date,omitempty"` TimeDelta *int64 `protobuf:"varint,6,opt,name=time_delta,json=timeDelta,proto3,oneof" json:"time_delta,omitempty"` + Noreturn bool `protobuf:"varint,7,opt,name=noreturn,proto3" json:"noreturn,omitempty"` } func (x *GetDriverJourneysRequest) Reset() { @@ -481,6 +482,13 @@ func (x *GetDriverJourneysRequest) GetTimeDelta() int64 { return 0 } +func (x *GetDriverJourneysRequest) GetNoreturn() bool { + if x != nil { + return x.Noreturn + } + return false +} + type GetDriverJourneysResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -635,9 +643,10 @@ type BookDriverJourneyRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PassengerId string `protobuf:"bytes,1,opt,name=passenger_id,json=passengerId,proto3" json:"passenger_id,omitempty"` - DriverId string `protobuf:"bytes,2,opt,name=driver_id,json=driverId,proto3" json:"driver_id,omitempty"` - DriverJourneyId string `protobuf:"bytes,3,opt,name=driver_journey_id,json=driverJourneyId,proto3" json:"driver_journey_id,omitempty"` + PassengerId string `protobuf:"bytes,1,opt,name=passenger_id,json=passengerId,proto3" json:"passenger_id,omitempty"` + DriverId string `protobuf:"bytes,2,opt,name=driver_id,json=driverId,proto3" json:"driver_id,omitempty"` + DriverJourneyId string `protobuf:"bytes,3,opt,name=driver_journey_id,json=driverJourneyId,proto3" json:"driver_journey_id,omitempty"` + ReturnWaitingDuration int64 `protobuf:"varint,4,opt,name=return_waiting_duration,json=returnWaitingDuration,proto3" json:"return_waiting_duration,omitempty"` } func (x *BookDriverJourneyRequest) Reset() { @@ -693,6 +702,13 @@ func (x *BookDriverJourneyRequest) GetDriverJourneyId() string { return "" } +func (x *BookDriverJourneyRequest) GetReturnWaitingDuration() int64 { + if x != nil { + return x.ReturnWaitingDuration + } + return 0 +} + type BookDriverJourneyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1037,6 +1053,91 @@ func (*UpdateSolidarityTransportBookingStatusResponse) Descriptor() ([]byte, []i return file_solidarity_transport_proto_rawDescGZIP(), []int{19} } +type ToggleSolidarityTransportNoreturnRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JourneyId string `protobuf:"bytes,1,opt,name=journey_id,json=journeyId,proto3" json:"journey_id,omitempty"` +} + +func (x *ToggleSolidarityTransportNoreturnRequest) Reset() { + *x = ToggleSolidarityTransportNoreturnRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_solidarity_transport_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToggleSolidarityTransportNoreturnRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToggleSolidarityTransportNoreturnRequest) ProtoMessage() {} + +func (x *ToggleSolidarityTransportNoreturnRequest) ProtoReflect() protoreflect.Message { + mi := &file_solidarity_transport_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ToggleSolidarityTransportNoreturnRequest.ProtoReflect.Descriptor instead. +func (*ToggleSolidarityTransportNoreturnRequest) Descriptor() ([]byte, []int) { + return file_solidarity_transport_proto_rawDescGZIP(), []int{20} +} + +func (x *ToggleSolidarityTransportNoreturnRequest) GetJourneyId() string { + if x != nil { + return x.JourneyId + } + return "" +} + +type ToggleSolidarityTransportNoreturnResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ToggleSolidarityTransportNoreturnResponse) Reset() { + *x = ToggleSolidarityTransportNoreturnResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_solidarity_transport_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ToggleSolidarityTransportNoreturnResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToggleSolidarityTransportNoreturnResponse) ProtoMessage() {} + +func (x *ToggleSolidarityTransportNoreturnResponse) ProtoReflect() protoreflect.Message { + mi := &file_solidarity_transport_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ToggleSolidarityTransportNoreturnResponse.ProtoReflect.Descriptor instead. +func (*ToggleSolidarityTransportNoreturnResponse) Descriptor() ([]byte, []int) { + return file_solidarity_transport_proto_rawDescGZIP(), []int{21} +} + var File_solidarity_transport_proto protoreflect.FileDescriptor var file_solidarity_transport_proto_rawDesc = []byte{ @@ -1089,7 +1190,7 @@ var file_solidarity_transport_proto_rawDesc = []byte{ 0x52, 0x0e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x29, 0x0a, 0x27, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x18, + 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x86, 0x02, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x47, 0x65, @@ -1103,151 +1204,172 @@ var file_solidarity_transport_proto_rawDesc = []byte{ 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, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x22, 0x67, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x44, - 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, - 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x70, 0x6f, 0x72, 0x74, 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, 0x55, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, - 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x75, - 0x72, 0x6e, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, - 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x49, 0x64, 0x22, 0x64, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, - 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6a, - 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, - 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, - 0x72, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, - 0x0d, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x22, 0x86, - 0x01, 0x0a, 0x18, 0x42, 0x6f, 0x6f, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, - 0x72, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, - 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x64, - 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, - 0x75, 0x72, 0x6e, 0x65, 0x79, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x19, 0x42, 0x6f, 0x6f, 0x6b, 0x44, - 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, - 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, - 0x6e, 0x67, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0xbb, 0x01, 0x0a, 0x25, - 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x01, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 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, 0x07, - 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x65, - 0x6e, 0x67, 0x65, 0x72, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, - 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x69, 0x64, 0x22, 0x61, 0x0a, 0x26, 0x47, 0x65, 0x74, - 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, - 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, - 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, - 0x6e, 0x67, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x36, 0x0a, 0x24, - 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x22, 0x5e, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, - 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, - 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, - 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x6f, 0x6f, - 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x6d, 0x0a, 0x2d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6f, - 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, - 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x30, 0x0a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x6c, + 0x65, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x6f, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, + 0x65, 0x6c, 0x74, 0x61, 0x22, 0x67, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6a, 0x6f, 0x75, 0x72, + 0x6e, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xc2, 0x08, 0x0a, 0x13, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, - 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x6d, 0x0a, - 0x1c, 0x41, 0x64, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, - 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x24, 0x2e, - 0x41, 0x64, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, - 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, - 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1e, - 0x41, 0x64, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, - 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x26, - 0x2e, 0x41, 0x64, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, - 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x72, 0x69, 0x76, - 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x73, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, - 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, - 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x47, 0x65, - 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x1f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x27, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, - 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, - 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, - 0x65, 0x79, 0x73, 0x12, 0x19, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, - 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x47, 0x65, 0x74, 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, 0x49, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, - 0x12, 0x18, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, - 0x6e, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x47, 0x65, 0x74, - 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x11, 0x42, 0x6f, 0x6f, 0x6b, 0x44, - 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x12, 0x19, 0x2e, 0x42, + 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, 0x55, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x75, 0x72, 0x6e, + 0x65, 0x79, 0x49, 0x64, 0x22, 0x64, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x48, 0x0a, 0x0e, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6a, 0x6f, 0x75, 0x72, 0x6e, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x6f, 0x6c, 0x69, 0x64, + 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x0d, 0x64, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x22, 0xbe, 0x01, 0x0a, 0x18, 0x42, 0x6f, 0x6f, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x44, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x65, + 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x5f, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, + 0x79, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x77, 0x61, + 0x69, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x57, 0x61, 0x69, 0x74, + 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x0a, 0x19, 0x42, + 0x6f, 0x6f, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6b, + 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, - 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x26, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, - 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x27, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x1d, 0x47, 0x65, - 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, - 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, - 0x26, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, + 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x22, + 0xbb, 0x01, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 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, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, + 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x69, 0x64, 0x22, 0x61, 0x0a, + 0x26, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x69, + 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x6f, 0x6c, 0x69, + 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, + 0x22, 0x36, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, + 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5e, 0x0a, 0x25, 0x47, 0x65, 0x74, 0x53, + 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x35, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, + 0x07, 0x62, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x6d, 0x0a, 0x2d, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 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, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, + 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x30, 0x0a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x0a, 0x28, 0x54, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x6f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x75, 0x72, 0x6e, + 0x65, 0x79, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x29, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, 0x6f, + 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x4e, 0x6f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x32, 0xc0, 0x09, 0x0a, 0x13, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x6d, 0x0a, 0x1c, 0x41, 0x64, 0x64, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x24, 0x2e, 0x41, 0x64, 0x64, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, + 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x41, 0x64, 0x64, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x41, 0x64, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, + 0x1e, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, + 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, + 0x26, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, + 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x76, 0x0a, 0x1f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x27, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, + 0x75, 0x6c, 0x61, 0x72, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x73, 0x12, + 0x19, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, + 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x47, 0x65, 0x74, + 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, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x12, 0x18, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x11, 0x42, 0x6f, 0x6f, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x12, 0x19, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, + 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x73, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, + 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, + 0x6e, 0x67, 0x73, 0x12, 0x26, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, + 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, + 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, + 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, + 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, + 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x26, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x2e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x6c, 0x69, + 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x6c, 0x69, + 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7c, 0x0a, 0x21, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, - 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, - 0x6f, 0x72, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x4b, 0x5a, 0x49, 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, 0x73, 0x6f, 0x6c, 0x69, - 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, - 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x72, 0x74, 0x4e, 0x6f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x29, 0x2e, 0x54, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x53, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x6f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, + 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x4e, 0x6f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x42, 0x4b, 0x5a, 0x49, 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, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x72, 0x69, 0x74, 0x79, + 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, + 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1262,7 +1384,7 @@ func file_solidarity_transport_proto_rawDescGZIP() []byte { return file_solidarity_transport_proto_rawDescData } -var file_solidarity_transport_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_solidarity_transport_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_solidarity_transport_proto_goTypes = []interface{}{ (*AddDriverRegularAvailabilityRequest)(nil), // 0: AddDriverRegularAvailabilityRequest (*AddDriverRegularAvailabilityResponse)(nil), // 1: AddDriverRegularAvailabilityResponse @@ -1284,26 +1406,28 @@ var file_solidarity_transport_proto_goTypes = []interface{}{ (*GetSolidarityTransportBookingResponse)(nil), // 17: GetSolidarityTransportBookingResponse (*UpdateSolidarityTransportBookingStatusRequest)(nil), // 18: UpdateSolidarityTransportBookingStatusRequest (*UpdateSolidarityTransportBookingStatusResponse)(nil), // 19: UpdateSolidarityTransportBookingStatusResponse - (*GeoJsonFeature)(nil), // 20: GeoJsonFeature - (*DriverRegularAvailability)(nil), // 21: DriverRegularAvailability - (*timestamppb.Timestamp)(nil), // 22: google.protobuf.Timestamp - (*SolidarityTransportDriverJourney)(nil), // 23: SolidarityTransportDriverJourney - (*SolidarityTransportBooking)(nil), // 24: SolidarityTransportBooking + (*ToggleSolidarityTransportNoreturnRequest)(nil), // 20: ToggleSolidarityTransportNoreturnRequest + (*ToggleSolidarityTransportNoreturnResponse)(nil), // 21: ToggleSolidarityTransportNoreturnResponse + (*GeoJsonFeature)(nil), // 22: GeoJsonFeature + (*DriverRegularAvailability)(nil), // 23: DriverRegularAvailability + (*timestamppb.Timestamp)(nil), // 24: google.protobuf.Timestamp + (*SolidarityTransportDriverJourney)(nil), // 25: SolidarityTransportDriverJourney + (*SolidarityTransportBooking)(nil), // 26: SolidarityTransportBooking } var file_solidarity_transport_proto_depIdxs = []int32{ - 20, // 0: AddDriverRegularAvailabilityRequest.address:type_name -> GeoJsonFeature - 21, // 1: AddDriverRegularAvailabilitiesRequest.availabilities:type_name -> DriverRegularAvailability - 21, // 2: GetDriverRegularAvailabilitiesResponse.results:type_name -> DriverRegularAvailability - 20, // 3: GetDriverJourneysRequest.departure:type_name -> GeoJsonFeature - 20, // 4: GetDriverJourneysRequest.arrival:type_name -> GeoJsonFeature - 22, // 5: GetDriverJourneysRequest.departure_date:type_name -> google.protobuf.Timestamp - 23, // 6: GetDriverJourneysResponse.driver_journeys:type_name -> SolidarityTransportDriverJourney - 23, // 7: GetDriverJourneyResponse.driver_journey:type_name -> SolidarityTransportDriverJourney - 24, // 8: BookDriverJourneyResponse.booking:type_name -> SolidarityTransportBooking - 22, // 9: GetSolidarityTransportBookingsRequest.start_date:type_name -> google.protobuf.Timestamp - 22, // 10: GetSolidarityTransportBookingsRequest.end_date:type_name -> google.protobuf.Timestamp - 24, // 11: GetSolidarityTransportBookingsResponse.bookings:type_name -> SolidarityTransportBooking - 24, // 12: GetSolidarityTransportBookingResponse.booking:type_name -> SolidarityTransportBooking + 22, // 0: AddDriverRegularAvailabilityRequest.address:type_name -> GeoJsonFeature + 23, // 1: AddDriverRegularAvailabilitiesRequest.availabilities:type_name -> DriverRegularAvailability + 23, // 2: GetDriverRegularAvailabilitiesResponse.results:type_name -> DriverRegularAvailability + 22, // 3: GetDriverJourneysRequest.departure:type_name -> GeoJsonFeature + 22, // 4: GetDriverJourneysRequest.arrival:type_name -> GeoJsonFeature + 24, // 5: GetDriverJourneysRequest.departure_date:type_name -> google.protobuf.Timestamp + 25, // 6: GetDriverJourneysResponse.driver_journeys:type_name -> SolidarityTransportDriverJourney + 25, // 7: GetDriverJourneyResponse.driver_journey:type_name -> SolidarityTransportDriverJourney + 26, // 8: BookDriverJourneyResponse.booking:type_name -> SolidarityTransportBooking + 24, // 9: GetSolidarityTransportBookingsRequest.start_date:type_name -> google.protobuf.Timestamp + 24, // 10: GetSolidarityTransportBookingsRequest.end_date:type_name -> google.protobuf.Timestamp + 26, // 11: GetSolidarityTransportBookingsResponse.bookings:type_name -> SolidarityTransportBooking + 26, // 12: GetSolidarityTransportBookingResponse.booking:type_name -> SolidarityTransportBooking 0, // 13: SolidarityTransport.AddDriverRegularAvailability:input_type -> AddDriverRegularAvailabilityRequest 2, // 14: SolidarityTransport.AddDriverRegularAvailabilities:input_type -> AddDriverRegularAvailabilitiesRequest 4, // 15: SolidarityTransport.GetDriverRegularAvailabilities:input_type -> GetDriverRegularAvailabilitiesRequest @@ -1314,18 +1438,20 @@ var file_solidarity_transport_proto_depIdxs = []int32{ 14, // 20: SolidarityTransport.GetSolidarityTransportBookings:input_type -> GetSolidarityTransportBookingsRequest 16, // 21: SolidarityTransport.GetSolidarityTransportBooking:input_type -> GetSolidarityTransportBookingRequest 18, // 22: SolidarityTransport.UpdateSolidarityTransportBookingStatus:input_type -> UpdateSolidarityTransportBookingStatusRequest - 1, // 23: SolidarityTransport.AddDriverRegularAvailability:output_type -> AddDriverRegularAvailabilityResponse - 3, // 24: SolidarityTransport.AddDriverRegularAvailabilities:output_type -> AddDriverRegularAvailabilitiesResponse - 5, // 25: SolidarityTransport.GetDriverRegularAvailabilities:output_type -> GetDriverRegularAvailabilitiesResponse - 7, // 26: SolidarityTransport.DeleteDriverRegularAvailability:output_type -> DeleteDriverRegularAvailabilityResponse - 9, // 27: SolidarityTransport.GetDriverJourneys:output_type -> GetDriverJourneysResponse - 11, // 28: SolidarityTransport.GetDriverJourney:output_type -> GetDriverJourneyResponse - 13, // 29: SolidarityTransport.BookDriverJourney:output_type -> BookDriverJourneyResponse - 15, // 30: SolidarityTransport.GetSolidarityTransportBookings:output_type -> GetSolidarityTransportBookingsResponse - 17, // 31: SolidarityTransport.GetSolidarityTransportBooking:output_type -> GetSolidarityTransportBookingResponse - 19, // 32: SolidarityTransport.UpdateSolidarityTransportBookingStatus:output_type -> UpdateSolidarityTransportBookingStatusResponse - 23, // [23:33] is the sub-list for method output_type - 13, // [13:23] is the sub-list for method input_type + 20, // 23: SolidarityTransport.ToggleSolidarityTransportNoreturn:input_type -> ToggleSolidarityTransportNoreturnRequest + 1, // 24: SolidarityTransport.AddDriverRegularAvailability:output_type -> AddDriverRegularAvailabilityResponse + 3, // 25: SolidarityTransport.AddDriverRegularAvailabilities:output_type -> AddDriverRegularAvailabilitiesResponse + 5, // 26: SolidarityTransport.GetDriverRegularAvailabilities:output_type -> GetDriverRegularAvailabilitiesResponse + 7, // 27: SolidarityTransport.DeleteDriverRegularAvailability:output_type -> DeleteDriverRegularAvailabilityResponse + 9, // 28: SolidarityTransport.GetDriverJourneys:output_type -> GetDriverJourneysResponse + 11, // 29: SolidarityTransport.GetDriverJourney:output_type -> GetDriverJourneyResponse + 13, // 30: SolidarityTransport.BookDriverJourney:output_type -> BookDriverJourneyResponse + 15, // 31: SolidarityTransport.GetSolidarityTransportBookings:output_type -> GetSolidarityTransportBookingsResponse + 17, // 32: SolidarityTransport.GetSolidarityTransportBooking:output_type -> GetSolidarityTransportBookingResponse + 19, // 33: SolidarityTransport.UpdateSolidarityTransportBookingStatus:output_type -> UpdateSolidarityTransportBookingStatusResponse + 21, // 34: SolidarityTransport.ToggleSolidarityTransportNoreturn:output_type -> ToggleSolidarityTransportNoreturnResponse + 24, // [24:35] is the sub-list for method output_type + 13, // [13:24] is the sub-list for method input_type 13, // [13:13] is the sub-list for extension type_name 13, // [13:13] is the sub-list for extension extendee 0, // [0:13] is the sub-list for field type_name @@ -1578,6 +1704,30 @@ func file_solidarity_transport_proto_init() { return nil } } + file_solidarity_transport_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToggleSolidarityTransportNoreturnRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_solidarity_transport_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ToggleSolidarityTransportNoreturnResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_solidarity_transport_proto_msgTypes[8].OneofWrappers = []interface{}{} type x struct{} @@ -1586,7 +1736,7 @@ func file_solidarity_transport_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_solidarity_transport_proto_rawDesc, NumEnums: 0, - NumMessages: 20, + NumMessages: 22, NumExtensions: 0, NumServices: 1, }, diff --git a/servers/grpc/proto/gen/solidarity-transport_grpc.pb.go b/servers/grpc/proto/gen/solidarity-transport_grpc.pb.go index e562778..929a1e5 100644 --- a/servers/grpc/proto/gen/solidarity-transport_grpc.pb.go +++ b/servers/grpc/proto/gen/solidarity-transport_grpc.pb.go @@ -29,6 +29,7 @@ const ( SolidarityTransport_GetSolidarityTransportBookings_FullMethodName = "/SolidarityTransport/GetSolidarityTransportBookings" SolidarityTransport_GetSolidarityTransportBooking_FullMethodName = "/SolidarityTransport/GetSolidarityTransportBooking" SolidarityTransport_UpdateSolidarityTransportBookingStatus_FullMethodName = "/SolidarityTransport/UpdateSolidarityTransportBookingStatus" + SolidarityTransport_ToggleSolidarityTransportNoreturn_FullMethodName = "/SolidarityTransport/ToggleSolidarityTransportNoreturn" ) // SolidarityTransportClient is the client API for SolidarityTransport service. @@ -48,6 +49,7 @@ type SolidarityTransportClient interface { GetSolidarityTransportBookings(ctx context.Context, in *GetSolidarityTransportBookingsRequest, opts ...grpc.CallOption) (*GetSolidarityTransportBookingsResponse, error) GetSolidarityTransportBooking(ctx context.Context, in *GetSolidarityTransportBookingRequest, opts ...grpc.CallOption) (*GetSolidarityTransportBookingResponse, error) UpdateSolidarityTransportBookingStatus(ctx context.Context, in *UpdateSolidarityTransportBookingStatusRequest, opts ...grpc.CallOption) (*UpdateSolidarityTransportBookingStatusResponse, error) + ToggleSolidarityTransportNoreturn(ctx context.Context, in *ToggleSolidarityTransportNoreturnRequest, opts ...grpc.CallOption) (*ToggleSolidarityTransportNoreturnResponse, error) } type solidarityTransportClient struct { @@ -148,6 +150,15 @@ func (c *solidarityTransportClient) UpdateSolidarityTransportBookingStatus(ctx c return out, nil } +func (c *solidarityTransportClient) ToggleSolidarityTransportNoreturn(ctx context.Context, in *ToggleSolidarityTransportNoreturnRequest, opts ...grpc.CallOption) (*ToggleSolidarityTransportNoreturnResponse, error) { + out := new(ToggleSolidarityTransportNoreturnResponse) + err := c.cc.Invoke(ctx, SolidarityTransport_ToggleSolidarityTransportNoreturn_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // SolidarityTransportServer is the server API for SolidarityTransport service. // All implementations must embed UnimplementedSolidarityTransportServer // for forward compatibility @@ -165,6 +176,7 @@ type SolidarityTransportServer interface { GetSolidarityTransportBookings(context.Context, *GetSolidarityTransportBookingsRequest) (*GetSolidarityTransportBookingsResponse, error) GetSolidarityTransportBooking(context.Context, *GetSolidarityTransportBookingRequest) (*GetSolidarityTransportBookingResponse, error) UpdateSolidarityTransportBookingStatus(context.Context, *UpdateSolidarityTransportBookingStatusRequest) (*UpdateSolidarityTransportBookingStatusResponse, error) + ToggleSolidarityTransportNoreturn(context.Context, *ToggleSolidarityTransportNoreturnRequest) (*ToggleSolidarityTransportNoreturnResponse, error) mustEmbedUnimplementedSolidarityTransportServer() } @@ -202,6 +214,9 @@ func (UnimplementedSolidarityTransportServer) GetSolidarityTransportBooking(cont func (UnimplementedSolidarityTransportServer) UpdateSolidarityTransportBookingStatus(context.Context, *UpdateSolidarityTransportBookingStatusRequest) (*UpdateSolidarityTransportBookingStatusResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateSolidarityTransportBookingStatus not implemented") } +func (UnimplementedSolidarityTransportServer) ToggleSolidarityTransportNoreturn(context.Context, *ToggleSolidarityTransportNoreturnRequest) (*ToggleSolidarityTransportNoreturnResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ToggleSolidarityTransportNoreturn not implemented") +} func (UnimplementedSolidarityTransportServer) mustEmbedUnimplementedSolidarityTransportServer() {} // UnsafeSolidarityTransportServer may be embedded to opt out of forward compatibility for this service. @@ -395,6 +410,24 @@ func _SolidarityTransport_UpdateSolidarityTransportBookingStatus_Handler(srv int return interceptor(ctx, in, info, handler) } +func _SolidarityTransport_ToggleSolidarityTransportNoreturn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ToggleSolidarityTransportNoreturnRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SolidarityTransportServer).ToggleSolidarityTransportNoreturn(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SolidarityTransport_ToggleSolidarityTransportNoreturn_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SolidarityTransportServer).ToggleSolidarityTransportNoreturn(ctx, req.(*ToggleSolidarityTransportNoreturnRequest)) + } + return interceptor(ctx, in, info, handler) +} + // SolidarityTransport_ServiceDesc is the grpc.ServiceDesc for SolidarityTransport service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -442,6 +475,10 @@ var SolidarityTransport_ServiceDesc = grpc.ServiceDesc{ MethodName: "UpdateSolidarityTransportBookingStatus", Handler: _SolidarityTransport_UpdateSolidarityTransportBookingStatus_Handler, }, + { + MethodName: "ToggleSolidarityTransportNoreturn", + Handler: _SolidarityTransport_ToggleSolidarityTransportNoreturn_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "solidarity-transport.proto", diff --git a/servers/grpc/proto/solidarity-transport-types.proto b/servers/grpc/proto/solidarity-transport-types.proto index c2b215b..5ae926a 100644 --- a/servers/grpc/proto/solidarity-transport-types.proto +++ b/servers/grpc/proto/solidarity-transport-types.proto @@ -34,6 +34,7 @@ message SolidarityTransportDriverJourney{ google.protobuf.Timestamp passenger_pickup_date = 11; optional google.protobuf.Timestamp driver_departure_date = 12; optional SolidarityTransportPrice price = 13; + bool noreturn = 14; } message SolidarityTransportPrice { @@ -47,6 +48,7 @@ message SolidarityTransportBooking { string driver_id = 3; string passenger_id = 4; string status = 5; + int64 return_waiting_duration = 6; SolidarityTransportDriverJourney journey = 10; } diff --git a/servers/grpc/proto/solidarity-transport.proto b/servers/grpc/proto/solidarity-transport.proto index 82c4f49..90110cd 100644 --- a/servers/grpc/proto/solidarity-transport.proto +++ b/servers/grpc/proto/solidarity-transport.proto @@ -21,6 +21,7 @@ service SolidarityTransport { rpc GetSolidarityTransportBookings(GetSolidarityTransportBookingsRequest) returns (GetSolidarityTransportBookingsResponse) {} rpc GetSolidarityTransportBooking(GetSolidarityTransportBookingRequest) returns (GetSolidarityTransportBookingResponse) {} rpc UpdateSolidarityTransportBookingStatus(UpdateSolidarityTransportBookingStatusRequest) returns (UpdateSolidarityTransportBookingStatusResponse) {} + rpc ToggleSolidarityTransportNoreturn(ToggleSolidarityTransportNoreturnRequest) returns (ToggleSolidarityTransportNoreturnResponse) {} } message AddDriverRegularAvailabilityRequest{ @@ -61,6 +62,7 @@ message GetDriverJourneysRequest { GeoJsonFeature arrival = 3; google.protobuf.Timestamp departure_date = 5; optional int64 time_delta = 6; + bool noreturn = 7; } message GetDriverJourneysResponse { @@ -80,6 +82,7 @@ message BookDriverJourneyRequest { string passenger_id = 1; string driver_id = 2; string driver_journey_id = 3; + int64 return_waiting_duration = 4; } message BookDriverJourneyResponse { @@ -110,3 +113,9 @@ message UpdateSolidarityTransportBookingStatusRequest { } message UpdateSolidarityTransportBookingStatusResponse {} + +message ToggleSolidarityTransportNoreturnRequest { + string journey_id = 1; + } + +message ToggleSolidarityTransportNoreturnResponse {} diff --git a/servers/grpc/server/bookings.go b/servers/grpc/server/bookings.go index b0bb4e9..22a9d8f 100644 --- a/servers/grpc/server/bookings.go +++ b/servers/grpc/server/bookings.go @@ -2,6 +2,7 @@ package server import ( "context" + "time" "git.coopgo.io/coopgo-platform/solidarity-transport/servers/grpc/proto/gen" "git.coopgo.io/coopgo-platform/solidarity-transport/servers/grpc/transformers" @@ -14,8 +15,9 @@ func (s SolidarityTransportServerImpl) BookDriverJourney(ctx context.Context, re passengerId := req.PassengerId driverId := req.DriverId journeyId := req.DriverJourneyId + returnWaitingDuration := time.Duration(req.ReturnWaitingDuration) - booking, err := s.Handler.BookDriverJourney(passengerId, driverId, journeyId) + booking, err := s.Handler.BookDriverJourney(passengerId, driverId, journeyId, returnWaitingDuration) if err != nil { log.Error().Err(err).Msg("issue in BookDriverJourney handler") return nil, status.Errorf(codes.Internal, "could not create booking : %v", err) diff --git a/servers/grpc/server/journeys.go b/servers/grpc/server/journeys.go index 952e43a..cfec119 100644 --- a/servers/grpc/server/journeys.go +++ b/servers/grpc/server/journeys.go @@ -22,7 +22,7 @@ func (s SolidarityTransportServerImpl) GetDriverJourneys(ctx context.Context, re return nil, status.Errorf(codes.Internal, "arrival unmarhsalling error : %v", err) } - driverJourneys, err := s.Handler.GetDriverJourneys(departure, arrival, departureDate) + driverJourneys, err := s.Handler.GetDriverJourneys(departure, arrival, departureDate, req.Noreturn) if err != nil { log.Error().Err(err).Msg("issue in GetDriverJourneys handler") return nil, status.Errorf(codes.Internal, "could not get driver journeys : %v", err) @@ -67,3 +67,14 @@ func (s SolidarityTransportServerImpl) GetDriverJourney(ctx context.Context, req DriverJourney: protojourney, }, nil } + +func (s SolidarityTransportServerImpl) ToggleSolidarityTransportNoreturn(ctx context.Context, req *gen.ToggleSolidarityTransportNoreturnRequest) (*gen.ToggleSolidarityTransportNoreturnResponse, error) { + journeyid := req.JourneyId + err := s.Handler.ToggleDriverJourneyNoreturn(journeyid) + if err != nil { + log.Error().Err(err).Msg("could not update data") + return nil, status.Errorf(codes.NotFound, "could not update data : %v", err) + } + + return &gen.ToggleSolidarityTransportNoreturnResponse{}, nil +} diff --git a/servers/grpc/transformers/bookings.go b/servers/grpc/transformers/bookings.go index 9cf1243..e943806 100644 --- a/servers/grpc/transformers/bookings.go +++ b/servers/grpc/transformers/bookings.go @@ -1,6 +1,8 @@ package transformers import ( + "time" + "git.coopgo.io/coopgo-platform/solidarity-transport/servers/grpc/proto/gen" "git.coopgo.io/coopgo-platform/solidarity-transport/types" ) @@ -11,12 +13,13 @@ func BookingTypeToProto(booking *types.Booking) (*gen.SolidarityTransportBooking return nil, err } return &gen.SolidarityTransportBooking{ - Id: booking.Id, - GroupId: booking.GroupId, - DriverId: booking.DriverId, - PassengerId: booking.PassengerId, - Status: booking.Status, - Journey: journey, + Id: booking.Id, + GroupId: booking.GroupId, + DriverId: booking.DriverId, + PassengerId: booking.PassengerId, + Status: booking.Status, + ReturnWaitingDuration: int64(booking.ReturnWaitingDuration), + Journey: journey, }, nil } @@ -26,11 +29,12 @@ func BookingProtoToType(booking *gen.SolidarityTransportBooking) (*types.Booking return nil, err } return &types.Booking{ - Id: booking.Id, - GroupId: booking.GroupId, - DriverId: booking.DriverId, - PassengerId: booking.PassengerId, - Status: booking.Status, - Journey: journey, + Id: booking.Id, + GroupId: booking.GroupId, + DriverId: booking.DriverId, + PassengerId: booking.PassengerId, + Status: booking.Status, + ReturnWaitingDuration: time.Duration(booking.ReturnWaitingDuration), + Journey: journey, }, nil } diff --git a/servers/grpc/transformers/journeys.go b/servers/grpc/transformers/journeys.go index d4ead5c..f04e22a 100644 --- a/servers/grpc/transformers/journeys.go +++ b/servers/grpc/transformers/journeys.go @@ -55,6 +55,7 @@ func DriverJourneyTypeToProto(j *types.DriverJourney) (*gen.SolidarityTransportD Amount: 0, Currency: "EUR", }, + Noreturn: j.Noreturn, }, nil } @@ -96,5 +97,6 @@ func DriverJourneyProtoToType(j *gen.SolidarityTransportDriverJourney) (*types.D Amount: j.Price.Amount, Currency: j.Price.Currency, }, + Noreturn: j.Noreturn, }, nil } diff --git a/storage/memory.go b/storage/memory.go index a3ae6e8..cab87c3 100644 --- a/storage/memory.go +++ b/storage/memory.go @@ -107,6 +107,11 @@ func (s MemoryStorage) GetDriverJourney(id string) (res *types.DriverJourney, er return } +func (s MemoryStorage) UpdateDriverJourney(journey types.DriverJourney) error { + s.DriverJourneys[journey.Id] = &journey + return nil +} + func (s MemoryStorage) CreateBooking(booking types.Booking) error { if booking.Id == "" { booking.Id = uuid.NewString() diff --git a/storage/mongodb.go b/storage/mongodb.go index 5c52621..1c0a6d5 100644 --- a/storage/mongodb.go +++ b/storage/mongodb.go @@ -166,6 +166,14 @@ func (s MongoDBStorage) GetDriverJourney(id string) (*types.DriverJourney, error return &res, nil } +func (s MongoDBStorage) UpdateDriverJourney(journey types.DriverJourney) error { + if _, err := s.Collections.DriverJourneys.ReplaceOne(context.Background(), bson.M{"_id": journey.Id}, journey); err != nil { + return err + } + + return nil +} + func (s MongoDBStorage) CreateBooking(booking types.Booking) error { if booking.Id == "" { booking.Id = uuid.NewString() diff --git a/storage/storage.go b/storage/storage.go index c29bbf4..bf9cbb1 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -18,6 +18,7 @@ type Storage interface { PushDriverJourneys([]*types.DriverJourney) error GetDriverJourney(id string) (*types.DriverJourney, error) + UpdateDriverJourney(types.DriverJourney) error CreateBooking(types.Booking) error GetAllBookings() ([]*types.Booking, error) diff --git a/types/booking.go b/types/booking.go index 830e808..79db721 100644 --- a/types/booking.go +++ b/types/booking.go @@ -1,11 +1,14 @@ package types +import "time" + type Booking struct { - Id string `json:"id" bson:"_id"` - GroupId string `json:"group_id" bson:"group_id"` - DriverId string `json:"driver_id" bson:"driver_id"` - PassengerId string `json:"passenger_id" bson:"passenger_id"` - Status string `json:"status" bson:"status"` + Id string `json:"id" bson:"_id"` + GroupId string `json:"group_id" bson:"group_id"` + DriverId string `json:"driver_id" bson:"driver_id"` + PassengerId string `json:"passenger_id" bson:"passenger_id"` + Status string `json:"status" bson:"status"` + ReturnWaitingDuration time.Duration `json:"return_waiting_duration" bson:"return_waiting_duration"` Journey *DriverJourney `json:"journey,omitempty" bson:"journey,omitempty"` } diff --git a/types/journeys.go b/types/journeys.go index 0540088..b321026 100644 --- a/types/journeys.go +++ b/types/journeys.go @@ -25,6 +25,7 @@ type DriverJourney struct { PassengerPickupDate time.Time `json:"passenger_pickup_date" bson:"passenger_pickup_date"` DriverDepartureDate time.Time `json:"driver_departure_date" bson:"driver_departure_date"` Price SolidarityTransportPrice + Noreturn bool } type PassengerTrip struct {