180 lines
No EOL
4.2 KiB
JSON
180 lines
No EOL
4.2 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"properties": {
|
|
"ticketType": {
|
|
"type": "string",
|
|
"enum": ["online ticket", "ICE ticket"]
|
|
},
|
|
"departureDate": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"priceType": {
|
|
"type": "string",
|
|
"enum": ["Flex price (single journey)"]
|
|
},
|
|
"class": {
|
|
"type": "integer",
|
|
"enum": [1]
|
|
},
|
|
"adult": {
|
|
"type": "object",
|
|
"properties": {
|
|
"quantity": {
|
|
"type": "integer"
|
|
},
|
|
"BC50": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": ["quantity", "BC50"]
|
|
},
|
|
"journey": {
|
|
"type": "object",
|
|
"properties": {
|
|
"from": {
|
|
"type": "string"
|
|
},
|
|
"to": {
|
|
"type": "string"
|
|
},
|
|
"via": {
|
|
"type": "string"
|
|
},
|
|
"train": {
|
|
"type": "string",
|
|
"enum": ["ICE"]
|
|
}
|
|
},
|
|
"required": ["from", "to", "via", "train"]
|
|
},
|
|
"refundPolicy": {
|
|
"type": "string"
|
|
},
|
|
"payment": {
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"quantity": {
|
|
"type": "integer"
|
|
},
|
|
"price": {
|
|
"type": "number"
|
|
},
|
|
"vat19": {
|
|
"type": "number"
|
|
},
|
|
"vat7": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": ["name", "quantity", "price", "vat19", "vat7"]
|
|
}
|
|
},
|
|
"total": {
|
|
"type": "number"
|
|
},
|
|
"method": {
|
|
"type": "string",
|
|
"enum": ["credit card"]
|
|
},
|
|
"transactionDetails": {
|
|
"type": "object",
|
|
"properties": {
|
|
"amount": {
|
|
"type": "number"
|
|
},
|
|
"VUNumber": {
|
|
"type": "integer"
|
|
},
|
|
"transactionNumber": {
|
|
"type": "integer"
|
|
},
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"genNumber": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["amount", "VUNumber", "transactionNumber", "date", "genNumber"]
|
|
}
|
|
},
|
|
"required": ["items", "total", "method", "transactionDetails"]
|
|
},
|
|
"bookingDetails": {
|
|
"type": "object",
|
|
"properties": {
|
|
"bookingDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"bookingAddress": {
|
|
"type": "string"
|
|
},
|
|
"taxNumber": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["bookingDate", "bookingAddress", "taxNumber"]
|
|
},
|
|
"journeyDetails": {
|
|
"type": "object",
|
|
"properties": {
|
|
"validFrom": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"passengerName": {
|
|
"type": "string"
|
|
},
|
|
"orderNumber": {
|
|
"type": "string"
|
|
},
|
|
"stops": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"stop": {
|
|
"type": "string"
|
|
},
|
|
"date": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"time": {
|
|
"type": "string",
|
|
"format": "time"
|
|
},
|
|
"track": {
|
|
"type": "integer"
|
|
},
|
|
"product": {
|
|
"type": "string"
|
|
},
|
|
"reservation": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["stop", "date", "time", "track", "product", "reservation"]
|
|
}
|
|
}
|
|
},
|
|
"required": ["validFrom", "passengerName", "orderNumber", "stops"]
|
|
},
|
|
"usageNotes": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": ["ticketType", "departureDate", "priceType", "class", "adult", "journey", "refundPolicy", "payment", "bookingDetails", "journeyDetails", "usageNotes"]
|
|
} |