common

package module
v0.0.0-...-847f29c Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2024 License: AGPL-3.0 Imports: 10 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CanParseFlightNumber

func CanParseFlightNumber(v string) bool

Types

type AirlineIdentifier

type AirlineIdentifier string
const (
	Lufthansa         AirlineIdentifier = "LH"
	AirDolomiti       AirlineIdentifier = "EN"
	Swiss             AirlineIdentifier = "LX"
	Austrian          AirlineIdentifier = "OS"
	Edelweiss         AirlineIdentifier = "WK"
	Brussels          AirlineIdentifier = "SN"
	EurowingsDiscover AirlineIdentifier = "4Y"
	Aegean            AirlineIdentifier = "A3"
	LHCity            AirlineIdentifier = "VL"
	AirBaltic         AirlineIdentifier = "BT"
	LATAM             AirlineIdentifier = "LA"
	SunExpress        AirlineIdentifier = "XQ"
	ANA               AirlineIdentifier = "NH"
	AirIndia          AirlineIdentifier = "AI"
	Eurowings         AirlineIdentifier = "EW"
	LOT               AirlineIdentifier = "LO"
	Croatia           AirlineIdentifier = "OU"
	KMMaltaAirlines   AirlineIdentifier = "KM"
	Airlink           AirlineIdentifier = "4Z"
	AirCanada         AirlineIdentifier = "AC"
	Luxair            AirlineIdentifier = "LG"
	TAP               AirlineIdentifier = "TP"
	CathayPacific     AirlineIdentifier = "CX"
	AirChina          AirlineIdentifier = "CA"
	AirNewZealand     AirlineIdentifier = "NZ"
	EgyptAir          AirlineIdentifier = "MS"
	SingaporeAirlines AirlineIdentifier = "SQ"
	Vistara           AirlineIdentifier = "UK"
	United            AirlineIdentifier = "UA"
	SouthAfrican      AirlineIdentifier = "SA"
	OmanAir           AirlineIdentifier = "WY"
	AirAstana         AirlineIdentifier = "KC"
	Avianca           AirlineIdentifier = "AV"
	Etihad            AirlineIdentifier = "EY"
	Ethiopian         AirlineIdentifier = "ET"
	THAI              AirlineIdentifier = "TH"
	AirFrance         AirlineIdentifier = "AF"
	THAITG            AirlineIdentifier = "TG"
	AsianaOZ          AirlineIdentifier = "OZ"
	BangkokAirways    AirlineIdentifier = "PG"
	AccessRail        AirlineIdentifier = "9B"
	Scandinavian      AirlineIdentifier = "SK"
	Georgian          AirlineIdentifier = "A9"
)

type CodeShare

type CodeShare struct {
	DataElements map[int]string `json:"dataElements"`
	Metadata     FlightMetadata `json:"metadata"`
}

type Departure

type Departure struct {
	Airport string          `json:"airport"`
	Date    xtime.LocalDate `json:"date"`
}

type Flight

type Flight struct {
	Airline                      AirlineIdentifier          `json:"airline"`
	FlightNumber                 int                        `json:"flightNumber"`
	Suffix                       string                     `json:"suffix"`
	DepartureTime                time.Time                  `json:"departureTime"`
	DepartureAirport             string                     `json:"departureAirport"`
	ArrivalTime                  time.Time                  `json:"arrivalTime"`
	ArrivalAirport               string                     `json:"arrivalAirport"`
	ServiceType                  string                     `json:"serviceType"`
	AircraftOwner                AirlineIdentifier          `json:"aircraftOwner"`
	AircraftType                 string                     `json:"aircraftType"`
	AircraftConfigurationVersion string                     `json:"aircraftConfigurationVersion"`
	Registration                 string                     `json:"registration"`
	DataElements                 map[int]string             `json:"dataElements"`
	CodeShares                   map[FlightNumber]CodeShare `json:"codeShares"`
	Metadata                     FlightMetadata             `json:"metadata"`
}

func (*Flight) DepartureDateLocal

func (f *Flight) DepartureDateLocal() xtime.LocalDate

func (*Flight) DepartureDateUTC

func (f *Flight) DepartureDateUTC() xtime.LocalDate

func (*Flight) DepartureLocal

func (f *Flight) DepartureLocal() Departure

func (*Flight) DepartureUTC

func (f *Flight) DepartureUTC() Departure

func (*Flight) Duration

func (f *Flight) Duration() time.Duration

func (*Flight) Id

func (f *Flight) Id() FlightId

func (*Flight) Number

func (f *Flight) Number() FlightNumber

type FlightId

type FlightId struct {
	Number    FlightNumber `json:"number"`
	Departure Departure    `json:"departure"`
}

func (FlightId) MarshalText

func (f FlightId) MarshalText() ([]byte, error)

func (FlightId) String

func (f FlightId) String() string

func (*FlightId) UnmarshalText

func (f *FlightId) UnmarshalText(text []byte) error

type FlightMetadata

type FlightMetadata struct {
	QueryDate    xtime.LocalDate `json:"queryDate"`
	CreationTime time.Time       `json:"creationTime"`
	UpdateTime   time.Time       `json:"updateTime"`
}

type FlightNumber

type FlightNumber struct {
	Airline AirlineIdentifier `json:"airline"`
	Number  int               `json:"number"`
	Suffix  string            `json:"suffix"`
}

func ParseFlightNumber

func ParseFlightNumber(v string) (FlightNumber, error)

func (FlightNumber) Id

func (f FlightNumber) Id(dep Departure) FlightId

func (FlightNumber) MarshalText

func (f FlightNumber) MarshalText() ([]byte, error)

func (FlightNumber) String

func (f FlightNumber) String() string

func (*FlightNumber) UnmarshalText

func (f *FlightNumber) UnmarshalText(text []byte) error

type FlightSchedule

type FlightSchedule struct {
	Airline      AirlineIdentifier        `json:"airline"`
	FlightNumber int                      `json:"flightNumber"`
	Suffix       string                   `json:"suffix"`
	Variants     []*FlightScheduleVariant `json:"variants"`
}

func (*FlightSchedule) Delete

func (fs *FlightSchedule) Delete(start, end time.Time)

func (*FlightSchedule) List

func (*FlightSchedule) Variant

type FlightScheduleData

type FlightScheduleData struct {
	OperatedAs                   FlightNumber      `json:"operatedAs"`
	DepartureTime                xtime.LocalTime   `json:"departureTime"`
	DepartureAirport             string            `json:"departureAirport"`
	DepartureUTCOffset           int               `json:"departureUTCOffset"`
	DurationSeconds              int64             `json:"durationSeconds"`
	ArrivalAirport               string            `json:"arrivalAirport"`
	ArrivalUTCOffset             int               `json:"arrivalUTCOffset"`
	ServiceType                  string            `json:"serviceType"`
	AircraftOwner                AirlineIdentifier `json:"aircraftOwner"`
	AircraftType                 string            `json:"aircraftType"`
	AircraftConfigurationVersion string            `json:"aircraftConfigurationVersion"`
	CodeShares                   Set[FlightNumber] `json:"codeShares"`
}

func (FlightScheduleData) Equal

func (fsd FlightScheduleData) Equal(other FlightScheduleData) bool

type FlightScheduleVariant

type FlightScheduleVariant struct {
	Ranges xtime.LocalDateRanges `json:"ranges"`
	Data   FlightScheduleData    `json:"data"`
}

func (*FlightScheduleVariant) ArrivalTime

func (fsv *FlightScheduleVariant) ArrivalTime(d xtime.LocalDate) time.Time

func (*FlightScheduleVariant) DepartureTime

func (fsv *FlightScheduleVariant) DepartureTime(d xtime.LocalDate) time.Time

type Set

type Set[T comparable] map[T]struct{}

func (Set[T]) Contains

func (s Set[T]) Contains(value T) bool

func (Set[T]) MarshalJSON

func (s Set[T]) MarshalJSON() ([]byte, error)

func (*Set[T]) UnmarshalJSON

func (s *Set[T]) UnmarshalJSON(bytes []byte) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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