schema.graphql (7935B)
1 schema { 2 query: Query 3 } 4 5 type Query { 6 routing(from: Int!, to: Int!): [Route!]! 7 8 stationWithEvaId(evaId: Int!): Station 9 stationWithStationNumber(stationNumber: Int!): Station 10 stationWithRill100(rill100: String!): Station 11 12 search(searchTerm: String): Searchable! 13 nearby(latitude: Float!, longitude: Float!, radius: Int = 10000): Nearby! 14 parkingSpace(id: Int): ParkingSpace 15 } 16 17 type Route { 18 parts: [RoutePart!]! 19 from: Station 20 to: Station 21 } 22 23 type RoutePart { 24 # Station where the part begins 25 from: Station! 26 to: Station! 27 delay: Int 28 product: Product 29 direction: String! 30 start: String! 31 end: String! 32 departingTrack: Track 33 arrivingTrack: Track 34 } 35 36 type Product { 37 name: String 38 class: Int 39 productCode: Int 40 productName: String 41 } 42 43 type Searchable { 44 stations: [Station!]! 45 operationLocations: [OperationLocation!]! 46 } 47 48 type OperationLocation { 49 id: String 50 abbrev: String! 51 name: String! 52 shortName: String! 53 type: String! 54 status: String 55 locationCode: String 56 UIC: String! 57 regionId: String 58 validFrom: String! 59 validTill: String 60 timeTableRelevant: Boolean 61 borderStation: Boolean 62 } 63 type Station { 64 primaryEvaId: Int 65 stationNumber: Int 66 primaryRil100: String 67 name: String! 68 location: Location 69 category: Int! 70 priceCategory: Int! 71 hasParking: Boolean! 72 hasBicycleParking: Boolean! 73 hasLocalPublicTransport: Boolean! 74 hasPublicFacilities: Boolean! 75 hasLockerSystem: Boolean! 76 hasTaxiRank: Boolean! 77 hasTravelNecessities: Boolean! 78 hasSteplessAccess: String! 79 hasMobilityService: String! 80 federalState: String! 81 regionalArea: RegionalArea! 82 facilities: [Facility!]! 83 mailingAddress: MailingAddress! 84 DBInformationOpeningTimes: OpeningTimes 85 localServiceStaffAvailability: OpeningTimes 86 aufgabentraeger: StationContact! 87 timeTableOffice: StationContact 88 szentrale: StationContact! 89 stationManagement: StationContact! 90 timetable: Timetable! 91 parkingSpaces: [ParkingSpace!]! 92 hasSteamPermission: Boolean! 93 hasWiFi: Boolean! 94 hasTravelCenter: Boolean! 95 hasRailwayMission: Boolean! 96 hasDBLounge: Boolean! 97 hasLostAndFound: Boolean! 98 hasCarRental: Boolean! 99 tracks: [Track!]! 100 picture: Picture 101 } 102 103 type Track { 104 platform: String! 105 number: String! 106 name: String! 107 # Length of the platform in cm 108 length: Int 109 # Height of the platform in cm 110 height: Int! 111 } 112 113 type Location { 114 latitude: Float! 115 longitude: Float! 116 } 117 118 type Facility { 119 description: String 120 type: FacilityType! 121 state: FacilityState! 122 equipmentNumber: Int 123 location: Location 124 } 125 126 type Picture { 127 id: Int! 128 url: String! 129 license: String! 130 photographer: Photographer! 131 } 132 133 type Photographer { 134 name: String! 135 url: String! 136 } 137 138 enum FacilityState { 139 ACTIVE 140 INACTIVE 141 UNKNOWN 142 } 143 144 enum FacilityType { 145 ESCALATOR 146 ELEVATOR 147 } 148 149 type MailingAddress { 150 city: String! 151 zipcode: String! 152 street: String! 153 } 154 155 type RegionalArea { 156 number: Int! 157 name: String! 158 shortName: String! 159 } 160 161 type OpeningTimes { 162 monday: OpeningTime 163 tuesday: OpeningTime 164 wednesday: OpeningTime 165 thursday: OpeningTime 166 friday: OpeningTime 167 saturday: OpeningTime 168 sunday: OpeningTime 169 holiday: OpeningTime 170 } 171 172 type OpeningTime { 173 from: String! 174 to: String! 175 } 176 177 type StationContact { 178 name: String! 179 shortName: String 180 email: String 181 number: String 182 phoneNumber: String 183 } 184 185 type Nearby { 186 stations (count: Int = 10, offset: Int = 0): [Station!]! 187 parkingSpaces (count: Int = 10, offset: Int = 0): [ParkingSpace!]! 188 travelCenters (count: Int = 10, offset: Int = 0): [TravelCenter!]! 189 flinksterCars (count: Int = 10, offset: Int = 0): [FlinksterCar!]! 190 bikes (count: Int = 10, offset: Int = 0): [FlinksterBike!]! 191 } 192 193 type ParkingSpace { 194 type: String 195 id: Int! 196 name: String 197 label: String 198 spaceNumber: String 199 responsibility: String 200 source: String 201 nameDisplay: String 202 spaceType: String 203 spaceTypeEn: String 204 spaceTypeName: String 205 location: Location 206 url: String 207 operator: String 208 operatorUrl: String 209 address: MailingAddress 210 distance: String 211 facilityType: String 212 facilityTypeEn: String 213 openingHours: String 214 openingHoursEn: String 215 numberParkingPlaces: String 216 numberHandicapedPlaces: String 217 isSpecialProductDb: Boolean! 218 isOutOfService: Boolean! 219 station: Station 220 occupancy: Occupancy 221 outOfServiceText: String 222 outOfServiceTextEn: String 223 reservation: String 224 clearanceWidth: String 225 clearanceHeight: String 226 allowedPropulsions: String 227 hasChargingStation: String 228 tariffPrices: [ParkingPriceOption!]! 229 outOfService: Boolean! 230 isDiscountDbBahnCard: Boolean! 231 isMonthVendingMachine: Boolean! 232 isDiscountDbBahnComfort: Boolean! 233 isDiscountDbParkAndRail: Boolean! 234 isMonthParkAndRide: Boolean! 235 isMonthSeason: Boolean! 236 tariffDiscount: String 237 tariffFreeParkingTime: String 238 tariffDiscountEn: String 239 tariffPaymentOptions: String 240 tariffPaymentCustomerCards: String 241 tariffFreeParkingTimeEn: String 242 tariffPaymentOptionsEn: String 243 slogan: String 244 sloganEn: String 245 } 246 247 type ParkingPriceOption { 248 id: Int! 249 duration: String! 250 price: Float 251 } 252 253 type Occupancy { 254 validData: Boolean! 255 timestamp: String! 256 timeSegment: String! 257 category: Int! 258 text: String! 259 } 260 261 type Timetable { 262 nextArrivals: [TrainInStation!]! 263 nextDepatures: [TrainInStation!]! 264 } 265 266 type TrainInStation { 267 type: String! 268 trainNumber: String! 269 platform: String! 270 time: String! 271 stops: [String!]! 272 } 273 274 type TravelCenter { 275 id: Int 276 name: String 277 address: MailingAddress 278 type: String 279 location: Location 280 } 281 282 type FlinksterCar { 283 id: String! 284 name: String! 285 description: String! 286 attributes: CarAttributes! 287 location: Location! 288 priceOptions: [PriceOption]! 289 equipment: CarEquipment! 290 rentalModel: String! 291 parkingArea: FlinksterParkingArea! 292 category: String! 293 url: String! 294 } 295 296 type FlinksterBike { 297 id: String! 298 url: String! 299 name: String! 300 description: String! 301 location: Location! 302 priceOptions: [PriceOption]! 303 attributes: BikeAttributes! 304 address: MailingAddress! 305 rentalModel: String! 306 type: String! 307 providerRentalObjectId: Int! 308 parkingArea: FlinksterParkingArea! 309 bookingUrl: String! 310 } 311 312 type CarAttributes { 313 seats: Int! 314 color: String! 315 doors: Int! 316 transmissionType: String! 317 licensePlate: String 318 fillLevel: Int 319 fuel: String 320 } 321 322 type CarEquipment { 323 cdPlayer: Boolean 324 airConditioning: Boolean 325 navigationSystem: Boolean 326 roofRailing: Boolean 327 particulateFilter: Boolean 328 audioInline: Boolean 329 tyreType: String 330 bluetoothHandsFreeCalling: Boolean 331 cruiseControl: Boolean 332 passengerAirbagTurnOff: Boolean 333 isofixSeatFittings: Boolean 334 } 335 336 type FlinksterParkingArea { 337 id: String! 338 url: String! 339 name: String! 340 address: MailingAddress! 341 parkingDescription: String 342 accessDescription: String 343 locationDescription: String 344 publicTransport: String 345 provider: FlinksterProvider! 346 type: String! 347 position: Location! 348 GeoJSON: GeoJSON 349 } 350 351 type GeoJSON { 352 type: String! 353 features: [GeoFeature!]! 354 } 355 356 type GeoFeature { 357 type: String! 358 properties: GeoProperties! 359 geometry: GeoPolygon! 360 } 361 362 type GeoPolygon { 363 type: String! 364 coordinates: [[[[Float]]]]! 365 } 366 367 type GeoProperties { 368 name: String! 369 } 370 371 type FlinksterProvider { 372 url: String! 373 areaId: Int! 374 networkIds: [Int!]! 375 } 376 377 type BikeAttributes { 378 licensePlate: String! 379 } 380 381 type PriceOption { 382 interval: Int 383 type: String! 384 grossamount: Float! 385 currency: String! 386 taxrate: Float! 387 preferredprice: Boolean! 388 }