import options export types import json import asynchttpserver type CommonData* = object lines*: JsonNode remarks*: seq[Remark] operators*: seq[Operator] points*: seq[Point] polylines*: seq[Polyline] dateStr*: string timestamp*: int64 HafasStopParams* = object aTimeS*: Option[string] aPlatfS*: Option[string] aTZOffset*: Option[int] aCncl*: Option[bool] aTimeR*: Option[string] aPlatfR*: Option[string] dTimeS*: Option[string] dPlatfS*: Option[string] dTZOffset*: Option[int] dCncl*: Option[bool] dTimeR*: Option[string] dPlatfR*: Option[string] locX*: Option[int] HafasProdCtx* = object name*: string num*: string catOut*: Option[string] catOutL*: string lineId*: Option[string] HafasProd* = object name*: string cls*: int icoX*: int nameS*: Option[string] addName*: Option[string] opX*: Option[int] prodCtx*: HafasProdCtx HafasLocRef* = object ppIdx*: int locX*: int HafasPolyline* = object crdEncYX*: string ppLocRefL*: Option[seq[HafasLocRef]] Stop* = object id*: string name*: string location*: Location products*: Products station*: Option[Station] Station* = object id*: int name*: string location*: Location products*: Products Location* = object latitude*: float longitude*: float name*: Option[string] address*: Option[string] id*: Option[string] Product* = enum nationalExp, national, regionalExp, regional, suburban, bus, ferry, subway, tram, taxi Mode* = enum Train, Bus, Watercraft, Taxi, Walking Products* = object nationalExp*: bool national*: bool regionalExp*: bool regional*: bool suburban*: bool bus*: bool ferry*: bool subway*: bool tram*: bool taxi*: bool Point* = object stop*: Option[Stop] location*: Option[Location] Journey* = object refreshToken*: string lastUpdated*: int64 legs*: seq[Leg] cycle*: Option[Cycle] price*: Option[Price] LegPart* = object point*: Point plannedTime*: int64 prognosedTime*: Option[int64] plannedPlatform*: Option[string] prognosedPlatform*: Option[string] Leg* = object isWalking*: bool isTransfer*: bool cancelled*: bool departure*: LegPart arrival*: LegPart polyline*: Option[Polyline] distance*: Option[int] # required for isWalking or isTransfer tripId*: Option[string] # required for not isWalking and not isTranfer line*: Option[Line] # required for not isWalking and not isTranfer direction*: Option[string] # required for not isWalking and not isTranfer cycle*: Option[Cycle] stopovers*: Option[seq[Stopover]] remarks*: Option[seq[Remark]] Line* = object id*: string name*: string mode*: Mode product*: Product tripNum*: string productName*: string fullProductName*: string operator*: Option[Operator] additionalName*: Option[string] trainType*: Option[string] trainTypeShort*: Option[string] Operator* = object id*: string name*: string Cycle* = object min*: Option[int] max*: Option[int] nr*: Option[int] # TODO: Make this unnecessary :3 Price* = object amount*: float currency*: Option[string] StopoverPart* = object plannedTime*: Option[int64] prognosedTime*: Option[int64] plannedPlatform*: Option[string] prognosedPlatform*: Option[string] Stopover* = object stop*: Stop cancelled*: bool departure*: StopoverPart arrival*: StopoverPart Remark* = object `type`*: Option[string] code*: Option[string] summary*: Option[string] text*: Option[string] tripId*: Option[string] JourneysResponse* = object earlierRef*: string laterRef*: string journeys*: seq[Journey] Accessibility* = enum none, partial, complete SuggestionsParams* = object query*: string results*: Option[int] #default value: 10 stations*: Option[bool] #default value: true poi*: Option[bool] #default value: true addresses*: Option[bool] #default value: true JourneysParams* = object fromPoint*: Point toPoint*: Point viaPoint*: Option[Point] #default value: null support in hafas backend: ✅ earlierRef*: Option[string] #default value: null support in hafas backend: ✅ laterRef*: Option[string] #default value: null support in hafas backend: ✅ results*: Option[int] #default value: 5 support in hafas backend: ✅ stopovers*: Option[bool] #default value: false support in hafas backend: ✅ polylines*: Option[bool] #default value: false support in hafas backend: ✅ remarks*: Option[bool] #default value: true support in hafas backend: bikeFriendly*: Option[bool] #default value: false support in hafas backend: tickets*: Option[bool] #default value: false support in hafas backend: ✅ startWithWalking*: Option[bool] #default value: true support in hafas backend: ✅ scheduledDays*: Option[bool] accessibility*: Option[Accessibility] #default value: none support in hafas backend: ✅ transfers*: Option[int] #default value: -1 support in hafas backend: ✅ transferTime*: Option[int] #default value: 00 support in hafas backend: ✅ arrival*: Option[int64] #default value: null support in hafas backend: ✅ departure*: Option[int64] #default value: null support in hafas backend: ✅ products*: Option[Products] #default value: all true support in hafas backend: ✅ RefreshJourneyParams* = object refreshToken*: string stopovers*: Option[bool] #default value: false support in hafas backend: ✅ polylines*: Option[bool] #default value: false support in hafas backend: ✅ tickets*: Option[bool] #default value: false support in hafas backend: ✅ Polyline* = object `type`*: string features*: seq[Feature] Feature* = object `type`*: string properties*: Option[Stop] geometry*: FeatureGeometry FeatureGeometry* = object `type`*: string coordinates*: seq[float] hafasExceptionKind* = enum SERVER_ERROR, ACCESS_DENIED, INVALID_REQUEST, NOT_FOUND hafasException* = ref object of ValueError code*: hafasExceptionKind message*: string statusCode*: HttpCode const MODES* = [ Train, # nationalExp Train, # national Train, # regionalExp Train, # regional Train, # suburban Bus, # bus Watercraft, # ferry Train, # subway Train, # tram Taxi, # taxi ]