Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrUnknown = errors.New("unknown cargo")
Functions ¶
This section is empty.
Types ¶
type Cargo ¶
type Cargo struct { TrackingID TrackingID Origin location.UNLocode RouteSpecification RouteSpecification Itinerary Itinerary Delivery Delivery }
func New ¶
func New(id TrackingID, rs RouteSpecification) *Cargo
func (*Cargo) AssignToRoute ¶
func (*Cargo) DeriveDeliveryProgress ¶
func (c *Cargo) DeriveDeliveryProgress(history HandlingHistory)
func (*Cargo) SpecifyNewRoute ¶
func (c *Cargo) SpecifyNewRoute(rs RouteSpecification)
type Delivery ¶
type Delivery struct { Itinerary Itinerary RouteSpecification RouteSpecification RoutingStatus RoutingStatus TransportStatus TransportStatus NextExpectedActivity HandlingActivity LastEvent HandlingEvent LastKnownLocation location.UNLocode CurrentVoyage voyage.Number ETA time.Time IsMisdirected bool IsUnloadedAtDestination bool }
func DeriveDeliveryFrom ¶
func DeriveDeliveryFrom(rs RouteSpecification, itinerary Itinerary, history HandlingHistory) Delivery
func (Delivery) UpdateOnRouting ¶
func (d Delivery) UpdateOnRouting(rs RouteSpecification, itinerary Itinerary) Delivery
type HandlingActivity ¶
type HandlingActivity struct { Type HandlingEventType Location location.UNLocode VoyageNumber voyage.Number }
type HandlingEvent ¶
type HandlingEvent struct { TrackingID TrackingID Activity HandlingActivity }
type HandlingEventFactory ¶
type HandlingEventFactory struct { CargoRepository Repository VoyageRepository voyage.Repository LocationRepository location.Repository }
func (*HandlingEventFactory) CreateHandlingEvent ¶
func (f *HandlingEventFactory) CreateHandlingEvent(registered time.Time, completed time.Time, id TrackingID, voyageNumber voyage.Number, unLocode location.UNLocode, eventType HandlingEventType) (HandlingEvent, error)
type HandlingEventRepository ¶
type HandlingEventRepository interface { Store(e HandlingEvent) QueryHandlingHistory(TrackingID) HandlingHistory }
type HandlingEventType ¶
type HandlingEventType int
const ( NotHandled HandlingEventType = iota Load Unload Receive Claim Customs )
func (HandlingEventType) String ¶
func (t HandlingEventType) String() string
type HandlingHistory ¶
type HandlingHistory struct {
HandlingEvents []HandlingEvent
}
func (HandlingHistory) MostRecentlyCompletedEvent ¶
func (h HandlingHistory) MostRecentlyCompletedEvent() (HandlingEvent, error)
type Itinerary ¶
type Itinerary struct {
Legs []Leg `json:"legs"`
}
func (Itinerary) FinalArrivalLocation ¶
func (Itinerary) FinalArrivalTime ¶
func (Itinerary) InitialDepartureLocation ¶
func (Itinerary) IsExpected ¶
func (i Itinerary) IsExpected(event HandlingEvent) bool
type Leg ¶
type Repository ¶
type RouteSpecification ¶
type RouteSpecification struct { Origin location.UNLocode Destination location.UNLocode ArrivalDeadline time.Time }
func (RouteSpecification) IsSatisfiedBy ¶
func (s RouteSpecification) IsSatisfiedBy(itinerary Itinerary) bool
type RoutingStatus ¶
type RoutingStatus int
const ( NotRouted RoutingStatus = iota Misrouted Routed )
func (RoutingStatus) String ¶
func (s RoutingStatus) String() string
type TransportStatus ¶
type TransportStatus int
const ( NotReceived TransportStatus = iota InPort OnboardCarrier Claimed Unknown )
func (TransportStatus) String ¶
func (s TransportStatus) String() string
Click to show internal directories.
Click to hide internal directories.