1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package model
- import (
- "errors"
- "time"
- )
- // VoyageNumber uniquely identifies a particular Voyage.
- type VoyageNumber string
- // Voyage is a uniquely identifiable series of carrier movements.
- type Voyage struct {
- VoyageNumber VoyageNumber
- Schedule Schedule
- }
- // NewVoyage creates a voyage with a voyage number and a provided schedule.
- func NewVoyage(n VoyageNumber, s Schedule) *Voyage {
- return &Voyage{VoyageNumber: n, Schedule: s}
- }
- // Schedule describes a voyage schedule.
- type Schedule struct {
- CarrierMovements []CarrierMovement
- }
- // CarrierMovement is a vessel voyage from one location to another.
- type CarrierMovement struct {
- DepartureLocation UNLocode
- ArrivalLocation UNLocode
- DepartureTime time.Time
- ArrivalTime time.Time
- }
- // ErrUnknownVoyage is used when a voyage could not be found.
- var ErrUnknownVoyage = errors.New("unknown voyage")
- // VoyageRepository provides access a voyage store.
- type VoyageRepository interface {
- Find(VoyageNumber) (*Voyage, error)
- }
|