Documentation
¶
Overview ¶
Package schema provides the input and output schema for nextroute.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Defaults ¶
type Defaults struct {
Vehicles *VehicleDefaults `json:"vehicles,omitempty"`
Stops *StopDefaults `json:"stops,omitempty"`
}
Defaults contains default values for vehicles and stops.
type Input ¶
type Input struct {
Options any `json:"options,omitempty"`
Defaults *Defaults `json:"defaults,omitempty"`
StopGroups *[][]string `json:"stop_groups,omitempty"`
DurationMatrix *[][]float64 `json:"duration_matrix,omitempty"`
DistanceMatrix *[][]float64 `json:"distance_matrix,omitempty"`
Vehicles []Vehicle `json:"vehicles,omitempty"`
Stops []Stop `json:"stops,omitempty"`
CustomData any `json:"custom_data,omitempty"`
}
Input is the default input schema for nextroute.
func RouterToNextRoute ¶
func RouterToNextRoute(routerInput RouterInput) Input
RouterToNextRoute transforms router input to nextroute input.
type ObjectiveOutput ¶ added in v0.23.8
type ObjectiveOutput struct {
Name string `json:"name"`
Objectives []ObjectiveOutput `json:"objectives,omitempty"`
Factor float64 `json:"factor,omitempty"`
Base float64 `json:"base,omitempty"`
Value float64 `json:"value"`
CustomData any `json:"custom_data,omitempty"`
}
ObjectiveOutput represents an objective as JSON.
type PlannedStopOutput ¶ added in v0.23.8
type PlannedStopOutput struct {
Stop StopOutput `json:"stop"`
TravelDuration int `json:"travel_duration"`
CumulativeTravelDuration int `json:"cumulative_travel_duration"`
TargetArrivalTime *time.Time `json:"target_arrival_time,omitempty"`
ArrivalTime *time.Time `json:"arrival_time,omitempty"`
WaitingDuration int `json:"waiting_duration,omitempty"`
StartTime *time.Time `json:"start_time,omitempty"`
Duration int `json:"duration,omitempty"`
EndTime *time.Time `json:"end_time,omitempty"`
EarlyArrivalDuration int `json:"early_arrival_duration,omitempty"`
LateArrivalDuration int `json:"late_arrival_duration,omitempty"`
CustomData any `json:"custom_data,omitempty"`
}
PlannedStopOutput adds information to the input stop.
type RouterInput ¶
type RouterInput struct {
Stops []route.Stop `json:"stops"`
Vehicles []string `json:"vehicles"`
InitializationCosts []float64 `json:"initialization_costs"`
Starts []Location `json:"starts"`
Ends []Location `json:"ends"`
Quantities []int `json:"quantities"`
Capacities []int `json:"capacities"`
Precedences []route.Job `json:"precedences"`
Windows []route.Window `json:"windows"`
Shifts []route.TimeWindow `json:"shifts"`
Penalties []int `json:"penalties"`
Backlogs []route.Backlog `json:"backlogs"`
VehicleAttributes []route.Attributes `json:"vehicle_attributes"`
StopAttributes []route.Attributes `json:"stop_attributes"`
Velocities []float64 `json:"velocities"`
Groups [][]string `json:"groups"`
ServiceTimes []route.Service `json:"service_times"`
AlternateStops []route.Alternate `json:"alternate_stops"`
Limits []route.Limit `json:"limits"`
DurationLimits []float64 `json:"duration_limits"`
DistanceLimits []float64 `json:"distance_limits"`
ServiceGroups []route.ServiceGroup `json:"service_groups"`
}
RouterInput is the schema for the input of router.
type SolutionOutput ¶ added in v0.23.8
type SolutionOutput struct {
Unplanned []StopOutput `json:"unplanned"`
Vehicles []VehicleOutput `json:"vehicles"`
Objective ObjectiveOutput `json:"objective"`
}
SolutionOutput represents a solutions as JSON.
type Stop ¶
type Stop struct {
Precedes any `json:"precedes,omitempty"`
Quantity any `json:"quantity,omitempty"`
Succeeds any `json:"succeeds,omitempty"`
TargetArrivalTime *time.Time `json:"target_arrival_time,omitempty"`
StartTimeWindow *[]time.Time `json:"start_time_window,omitempty"`
MaxWait *int `json:"max_wait,omitempty"`
Duration *int `json:"duration,omitempty"`
UnplannedPenalty *int `json:"unplanned_penalty,omitempty"`
EarlyArrivalTimePenalty *float64 `json:"early_arrival_time_penalty,omitempty"`
LateArrivalTimePenalty *float64 `json:"late_arrival_time_penalty,omitempty"`
CompatibilityAttributes *[]string `json:"compatibility_attributes"`
ID string `json:"id,omitempty"`
Location Location `json:"location,omitempty"`
CustomData any `json:"custom_data,omitempty"`
}
Stop represents a stop.
type StopDefaults ¶
type StopDefaults struct {
UnplannedPenalty *int `json:"unplanned_penalty,omitempty"`
Quantity any `json:"quantity,omitempty"`
StartTimeWindow *[]time.Time `json:"start_time_window,omitempty"`
MaxWait *int `json:"max_wait,omitempty"`
Duration *int `json:"duration,omitempty"`
TargetArrivalTime *time.Time `json:"target_arrival_time,omitempty"`
EarlyArrivalTimePenalty *float64 `json:"early_arrival_time_penalty,omitempty"`
LateArrivalTimePenalty *float64 `json:"late_arrival_time_penalty,omitempty"`
CompatibilityAttributes *[]string `json:"compatibility_attributes"`
}
StopDefaults contains default values for stops.
type StopOutput ¶
type StopOutput struct {
ID string `json:"id"`
Location Location `json:"location"`
CustomData any `json:"custom_data,omitempty"`
}
StopOutput is the basic struct for a stop.
type Vehicle ¶
type Vehicle struct {
Capacity any `json:"capacity,omitempty"`
StartLocation *Location `json:"start_location,omitempty"`
EndLocation *Location `json:"end_location,omitempty"`
Speed *float64 `json:"speed,omitempty"`
ID string `json:"id,omitempty"`
StartTime *time.Time `json:"start_time,omitempty"`
EndTime *time.Time `json:"end_time,omitempty"`
CompatibilityAttributes *[]string `json:"compatibility_attributes,omitempty"`
MaxStops *int `json:"max_stops,omitempty"`
MaxDistance *int `json:"max_distance,omitempty"`
MaxDuration *int `json:"max_duration,omitempty"`
MaxWait *int `json:"max_wait,omitempty"`
InitializationCost *int `json:"initialization_cost,omitempty"`
CustomData any `json:"custom_data,omitempty"`
}
Vehicle represents a vehicle.
type VehicleDefaults ¶
type VehicleDefaults struct {
Capacity any `json:"capacity,omitempty"`
StartLocation *Location `json:"start_location,omitempty"`
EndLocation *Location `json:"end_location,omitempty"`
Speed *float64 `json:"speed,omitempty"`
StartTime *time.Time `json:"start_time,omitempty"`
EndTime *time.Time `json:"end_time,omitempty"`
MaxStops *int `json:"max_stops,omitempty"`
MaxDistance *int `json:"max_distance,omitempty"`
MaxDuration *int `json:"max_duration,omitempty"`
MaxWait *int `json:"max_wait,omitempty"`
CompatibilityAttributes *[]string `json:"compatibility_attributes,omitempty"`
}
VehicleDefaults contains default values for vehicles.
type VehicleOutput ¶
type VehicleOutput struct {
ID string `json:"id"`
Route []PlannedStopOutput `json:"route"`
RouteTravelDuration int `json:"route_travel_duration"`
RouteStopsDuration int `json:"route_stops_duration,omitempty"`
RouteWaitingDuration int `json:"route_waiting_duration,omitempty"`
RouteDuration int `json:"route_duration"`
CustomData any `json:"custom_data,omitempty"`
}
VehicleOutput holds the solution of the ModelVehicle Routing Problem.