vroom

package
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2025 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

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 VroomComputingTime struct {
	Loading int32 `json:"loading"`
	Solving int32 `json:"solving"`
	Routing int32 `json:"routing"`
}

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 VroomShipmentStep struct {
	ID          int32     `json:"id"`
	Description string    `json:"description"`
	Location    []float64 `json:"location"`
}

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 VroomType

type VroomType string
const (
	VroomPickup VroomType = "pickup"
)

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"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL