abgespaced

An API that combines The DB Bahnhof API and the Space API
git clone git://archive.git.mtrnord.blog/MTRNord/abgespaced.git
Log | Files | Refs

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 }