184 lines
4.9 KiB
Python
184 lines
4.9 KiB
Python
from __future__ import annotations
|
|
|
|
from datetime import date, datetime
|
|
from enum import Enum
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class BaggageClaimType(BaseModel):
|
|
belts: list[str] | None = None
|
|
|
|
|
|
class RemarksType(BaseModel):
|
|
remarks: list[str] | None = None
|
|
|
|
|
|
class CodesharesType(BaseModel):
|
|
codeshares: list[str] | None = None
|
|
|
|
|
|
class PublicName(BaseModel):
|
|
dutch: str | None = None
|
|
english: str | None = None
|
|
|
|
|
|
class Destination(BaseModel):
|
|
city: str | None = None
|
|
country: str | None = None
|
|
iata: str | None = None
|
|
publicName: PublicName | None = None
|
|
|
|
|
|
class Airline(BaseModel):
|
|
iata: str | None = None
|
|
icao: str | None = None
|
|
nvls: int | None = None
|
|
publicName: str | None = None
|
|
|
|
|
|
class AirlineList(BaseModel):
|
|
airlines: list[Airline] | None = None
|
|
|
|
|
|
class AircraftType(BaseModel):
|
|
iataMain: str | None = None
|
|
iataSub: str | None = None
|
|
longDescription: str | None = None
|
|
shortDescription: str | None = None
|
|
|
|
|
|
class AircraftTypeList(BaseModel):
|
|
aircraftTypes: list[AircraftType] | None = None
|
|
|
|
|
|
class FlightDirection(Enum):
|
|
A = "A"
|
|
D = "D"
|
|
|
|
|
|
class RouteType(BaseModel):
|
|
destinations: list[str] | None = None
|
|
eu: str | None = Field(
|
|
None, description="S (Schengen), E (Europe) or N (non-Europe)"
|
|
)
|
|
visa: bool | None = Field(
|
|
None, description="Indicates if a visum is required for destination"
|
|
)
|
|
|
|
|
|
class AircraftTypeType(BaseModel):
|
|
iataMain: str | None = None
|
|
iataSub: str | None = None
|
|
|
|
|
|
class CheckinClassType(BaseModel):
|
|
code: str | None = None
|
|
description: str | None = None
|
|
|
|
|
|
class TransferPositionsType(BaseModel):
|
|
transferPositions: list[int] | None = None
|
|
|
|
|
|
class PublicFlightStateType(BaseModel):
|
|
flightStates: list[str] | None = None
|
|
|
|
|
|
class DestinationList(BaseModel):
|
|
destinations: list[Destination] | None = None
|
|
|
|
|
|
class DeskType(BaseModel):
|
|
checkinClass: CheckinClassType | None = None
|
|
position: int | None = None
|
|
|
|
|
|
class DesksType(BaseModel):
|
|
desks: list[DeskType] | None = None
|
|
|
|
|
|
class RowType(BaseModel):
|
|
position: str | None = None
|
|
desks: DesksType | None = None
|
|
|
|
|
|
class RowsType(BaseModel):
|
|
rows: list[RowType] | None = None
|
|
|
|
|
|
class CheckinAllocationType(BaseModel):
|
|
endTime: datetime | None = None
|
|
rows: RowsType | None = None
|
|
startTime: datetime | None = None
|
|
|
|
|
|
class CheckinAllocationsType(BaseModel):
|
|
checkinAllocations: list[CheckinAllocationType] | None = None
|
|
remarks: RemarksType | None = None
|
|
|
|
|
|
class Flight(BaseModel):
|
|
lastUpdatedAt: datetime | None = None
|
|
actualLandingTime: datetime | None = Field(
|
|
None, description="yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
)
|
|
actualOffBlockTime: datetime | None = Field(
|
|
None, description="yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
)
|
|
aircraftRegistration: str | None = None
|
|
aircraftType: AircraftTypeType | None = None
|
|
baggageClaim: BaggageClaimType | None = None
|
|
checkinAllocations: CheckinAllocationsType | None = None
|
|
codeshares: CodesharesType | None = None
|
|
estimatedLandingTime: datetime | None = Field(
|
|
None, description="yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
)
|
|
expectedTimeBoarding: datetime | None = Field(
|
|
None, description="yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
)
|
|
expectedTimeGateClosing: datetime | None = Field(
|
|
None, description="yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
)
|
|
expectedTimeGateOpen: datetime | None = Field(
|
|
None, description="yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
)
|
|
expectedTimeOnBelt: datetime | None = Field(
|
|
None, description="yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
)
|
|
expectedSecurityFilter: str | None = Field(
|
|
None, description="expected security filter"
|
|
)
|
|
flightDirection: FlightDirection | None = None
|
|
flightName: str | None = None
|
|
flightNumber: int | None = None
|
|
gate: str | None = None
|
|
pier: str | None = None
|
|
id: str | None = None
|
|
isOperationalFlight: bool | None = None
|
|
mainFlight: str | None = None
|
|
prefixIATA: str | None = None
|
|
prefixICAO: str | None = None
|
|
airlineCode: int | None = None
|
|
publicEstimatedOffBlockTime: datetime | None = Field(
|
|
None, description="yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
)
|
|
publicFlightState: PublicFlightStateType | None = None
|
|
route: RouteType | None = None
|
|
scheduleDateTime: datetime | None = Field(
|
|
None, description="yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
)
|
|
scheduleDate: date | None = Field(None, description="yyyy-MM-dd")
|
|
scheduleTime: str | None = Field(None, description="hh:mm:ss")
|
|
serviceType: str | None = Field(
|
|
None,
|
|
description="The service type category of the commercial flight. For example: J = Passenger Line, C=Passenger Charter, F = Freight Line and H = Freight Charter etc.",
|
|
)
|
|
terminal: int | None = None
|
|
transferPositions: TransferPositionsType | None = None
|
|
schemaVersion: str | None = None
|
|
|
|
|
|
class FlightList(BaseModel):
|
|
flights: list[Flight] | None = None
|