Documentation
¶
Index ¶
- func RefillCount(steps []*VroomRouteStep) int
- type VroomClient
- type VroomClientConfig
- type VroomClientOption
- type VroomComputingTime
- type VroomLocation
- type VroomReq
- type VroomResponse
- type VroomRouteStep
- type VroomRoutes
- type VroomShipmentStep
- type VroomShipments
- type VroomSummary
- type VroomType
- type VroomVehicle
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RefillCount ¶
func RefillCount(steps []*VroomRouteStep) int
Types ¶
type VroomClient ¶
type VroomClient struct {
// contains filtered or unexported fields
}
func NewVroomClient ¶
func NewVroomClient(opts ...VroomClientOption) VroomClient
func (*VroomClient) OptimizeRoute ¶
func (v *VroomClient) OptimizeRoute(ctx context.Context, vehicle *entities.Vehicle, cluster []*entities.TreeCluster) (*VroomResponse, error)
func (*VroomClient) Send ¶
func (v *VroomClient) Send(ctx context.Context, reqBody *VroomReq) (*VroomResponse, error)
type VroomClientConfig ¶
type VroomClientConfig struct {
// contains filtered or unexported fields
}
type VroomClientOption ¶
type VroomClientOption func(*VroomClientConfig)
func WithClient ¶
func WithClient(client *http.Client) VroomClientOption
func WithEndPoint ¶
func WithEndPoint(endPoint []float64) VroomClientOption
func WithHostURL ¶
func WithHostURL(hostURL *url.URL) VroomClientOption
func WithStartPoint ¶
func WithStartPoint(startPoint []float64) VroomClientOption
func WithWateringPoint ¶
func WithWateringPoint(wateringPoint []float64) VroomClientOption
type VroomComputingTime ¶
type VroomLocation ¶
type VroomLocation []float64
type VroomReq ¶
type VroomReq struct {
Vehicles []VroomVehicle `json:"vehicles"`
Shipments []VroomShipments `json:"shipments"`
}
type VroomResponse ¶
type VroomResponse struct {
Code int32 `json:"code"`
Error *string `json:"error,omitempty"`
Summary VroomSummary `json:"summary"`
Routes []VroomRoutes `json:"routes"`
}
type VroomRouteStep ¶
type VroomRouteStep struct {
Type string `json:"type"`
Location VroomLocation `json:"location"`
Setup int32 `json:"setup"`
Service int32 `json:"service"`
WaitingTime int32 `json:"waiting_time"`
Load []int32 `json:"load"`
Arrival int32 `json:"arrival"`
Duration int32 `json:"duration"`
}
func ReduceSteps ¶
func ReduceSteps(acc []*VroomRouteStep, current VroomRouteStep) []*VroomRouteStep
Reduce multiple pickups to one "start" -> "pickup" -> "pickup" -> "delivery" => "start" -> "pickup" -> "delivery"
type VroomRoutes ¶
type VroomRoutes struct {
Vehicle int32 `json:"vehicle"`
Cost int32 `json:"cost"`
Delivery []int32 `json:"delivery"`
Amount []int32 `json:"amount"`
Pickup []int32 `json:"pickup"`
Setup int32 `json:"setup"`
Service int32 `json:"service"`
Duration int32 `json:"duration"`
WaitingTime int32 `json:"waiting_time"`
Priority int32 `json:"priority"`
Steps []VroomRouteStep `json:"steps"`
}
type VroomShipmentStep ¶
type VroomShipments ¶
type VroomShipments struct {
Amount []int32 `json:"amount"`
Pickup VroomShipmentStep `json:"pickup"`
Delivery VroomShipmentStep `json:"delivery"`
}
type VroomSummary ¶
type VroomSummary struct {
Cost int32 `json:"cost"`
Routes int32 `json:"routes"`
Unassigend int32 `json:"unassigend"`
Delivery []int32 `json:"delivery"`
Amount []int32 `json:"amount"`
Pickup []int32 `json:"pickup"`
Setup int32 `json:"setup"`
Service int32 `json:"service"`
Duration int32 `json:"duration"`
WaitingTime int32 `json:"waiting_time"`
ComputingTime VroomComputingTime `json:"computing_time"`
}
type VroomVehicle ¶
type VroomVehicle struct {
ID int32 `json:"id"`
Description string `json:"description"`
Profile string `json:"profile"`
Start VroomLocation `json:"start"`
End VroomLocation `json:"end"`
Capacity []int32 `json:"capacity"`
}
Click to show internal directories.
Click to hide internal directories.