-
Notifications
You must be signed in to change notification settings - Fork 0
Search offers - the 'What' part - Trip based - 20260702 #67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| allOf: | ||
| - $ref: .\Leg.yaml | ||
| - type: object | ||
| properties: | ||
| legType: | ||
| type: string | ||
| description: discriminator for the leg type | ||
| const: continuous | ||
| continuousMode: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't know this one.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove |
||
| type: string | ||
| enum: [] | ||
| duration: | ||
| type: integer | ||
| description: Duration of the leg in minutes | ||
| individualMode: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @Ulf9 What is this? I don't see it in TM.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It should be
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove |
||
| type: string | ||
| enum: [] | ||
| start: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. startPlace?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. keep consistent with TimedLeg |
||
| type: string | ||
| format: place-ref | ||
| end: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. and endPlace? |
||
| type: string | ||
| format: place-ref | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| allOf: | ||
| - $ref: .\SearchOfferFilter.yaml | ||
| - type: object | ||
| required: | ||
| - filterType | ||
| - mediaType | ||
| properties: | ||
| filterType: | ||
| type: string | ||
| const: distribution | ||
| channel: | ||
| type: string | ||
| description: The channel of the offer. | ||
| x-enum-values: | ||
| - "web" | ||
| - "mobile" | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. app ? |
||
| - "kiosk" | ||
| - "call center" | ||
| - "travel agency" | ||
| - "other" | ||
| fulfillmentMethod: | ||
| type: string | ||
| description: The fulfillment method of the offer. | ||
| x-enum-values: | ||
| - "electronic" | ||
| - "paper" | ||
| - "mobile" | ||
| - "other" | ||
| typeOfPayment: | ||
| type: string | ||
| description: The type of payment of the offer. | ||
| x-enum-values: | ||
| - "prepaid" | ||
| - "postpaid" | ||
| - "other" | ||
| mediaType: | ||
| type: string | ||
| description: |- | ||
| The media type of the offer. IANA media type registry: https://www.iana.org/assignments/media-types/media-types.xhtml | ||
| examples: | ||
| - "application/json" | ||
| - "application/xml" | ||
| - "text/html" | ||
| - "application/pdf" | ||
| - "image/jpeg" | ||
| - "image/svg+xml" | ||
| contentStandard: | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The client must indicate the technology of issuing: FulfillmentMediaType: ["ALLOCATOR_APP","DISTRIBUTOR_APP","RETAILER_APP","FULFILLMENT_PARTS","PDF_A4","PKPASS","RCCST","RCT2","UIC_PDF","TICKETLESS","APPLICATION","WALLET","CHIP_CARD"] The dedicated applications available: The specification used via the application: |
||
| type: string | ||
| description: The content standard of the offer. | ||
| x-enum-values: | ||
| - "ISO/IEC 18004" # QR Code | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Which format the barcode included in a pdf, jpg or wallet fulfillment has is not relevant. |
||
| - "ISO/IEC 24778" # Aztec Code | ||
| - "ISO/IEC 15438" # PDF417 | ||
| - "ISO/IEC 16022" # Data Matrix | ||
| - "ISO/IEC 15417" # Code 128 | ||
| - "ISO/IEC 16388" # Code 39 | ||
| - "ISO/IEC 15420" # EAN-13 | ||
| - "ISO/IEC 15417" # UPC-A | ||
| - "ISO/IEC 15424" # MaxiCode | ||
| - "ISO/IEC 7816-4" # NFC, MIFARE DESFire | ||
| - "GATT" # Bluetooth Low Energy | ||
| - "AXA Bike lock" # AXA Bike lock | ||
| - "OTHER" # Other content standard | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. is calypso card somewhere in that list ?
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. could be interesting to avec an object for the Fulfillment Storage Location (or something more accurate): ON_MEDIA, ON_SYSTEM. Indicating if the ticket is technically stored in the media or in system. |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| allOf: | ||
| - $ref: .\SearchOfferFilter.yaml | ||
| - type: object | ||
| required: | ||
| - filterType | ||
| - afterSalesLevel | ||
| properties: | ||
| filterType: | ||
| type: string | ||
| const: flexibility | ||
| afterSalesLevel: | ||
| type: string | ||
| enum: | ||
| - "cancellable" | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. what is the difference between cancellable and refundable? |
||
| - "exchangeable" | ||
| - "refundable" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| type: object | ||
| required: | ||
| - legId | ||
| - mode | ||
| - legType | ||
| properties: | ||
| legId: | ||
| type: string | ||
| description: Unique identifier for the leg | ||
| format: leg-ref | ||
| legType: | ||
| type: string | ||
| description: discriminator for the leg type | ||
| enum: [timed, continuous, transfer] | ||
| mode: | ||
| type: string | ||
| description: Mode of transportation for the leg (e.g., bus, train, walking). See modes as specified in NeTEx. | ||
| enum: [] | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. should be a ref to Mode.yaml
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, it would be clearer. |
||
| sequenceNumber: | ||
| type: integer | ||
| description: The order of the leg in the overall journey. In case of parallel legs, the sequence number should be the same for those legs. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Further discussion / modelling is needed on the concept of |
||
| default: 1 | ||
| minimum: 1 | ||
| tripPattern: | ||
| type: string | ||
| format: trip-pattern-ref | ||
| description: Reference to the trip pattern that this leg is part of, if applicable. There is no tripPattern object in the data model, | ||
| so legs with the same tripPattern reference are considered to be part of the same trip pattern. | ||
| examples: | ||
| - "inbound-1234" | ||
| - "outbound-5678" | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. LegAlight is used in ScheduledLegs. To include continuous leg data like DownLocation and pickup location there needs to be a ContinuousLeg"Alight".
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. serviceDepartureFormation should be added to provide platform information (in the reply) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| type: object | ||
| required: | ||
| - setDownLocation | ||
| - arrivalTime | ||
| properties: | ||
| setDownLocation: | ||
| type: string | ||
| format: place-ref | ||
| description: Reference to the drop-off location for the leg | ||
| arrivalTime: | ||
| type: string | ||
| format: date-time | ||
| description: The arrival time at the drop-off location. Local time zone should be used. | ||
| stopPointName: | ||
| type: string | ||
| description: Name of the stop point where the leg ends | ||
| stopPointRef: | ||
| type: string | ||
| format: stop-point-ref | ||
| description: Reference to the stop point where the leg ends |
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. LegBoard is used in ScheduledLegs. To include continuous leg data like DownLocation and pickup location there needs to be a ContinuousLegBoard. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| type: object | ||
| required: | ||
| - pickupLocation | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. pickupLocation is for continuous legs only |
||
| - departureTime | ||
| properties: | ||
| pickupLocation: | ||
| type: string | ||
| format: place-ref | ||
| description: Reference to the pickup location for the leg | ||
| departureTime: | ||
| type: string | ||
| format: date-time | ||
| description: The departure time from the pickup location. Local time zone should be used. | ||
| stopPointName: | ||
| type: string | ||
| description: Name of the stop point where the leg starts | ||
| stopPointRef: | ||
| type: string | ||
| format: stop-point-ref | ||
| description: Reference to the stop point where the leg starts | ||
| trainNumbers: | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. regional traffic often uses line numbers instead of train numbers. To be multimodal it should be named vehicleNumbers.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Or ServiceJourney/PublicCode according to NeTEx. But shall be definitly multimodal |
||
| type: array | ||
| items: | ||
| type: string | ||
| format: train-number | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Where is the train-number format? |
||
| description: List of train numbers associated with this leg, if applicable | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| type: object | ||
| required: | ||
| - arrivalTime | ||
| - departureTime | ||
| properties: | ||
| arrivalTime: | ||
| type: string | ||
| format: date-time | ||
| description: The arrival time at the drop-off location. Local time zone should be used. | ||
| departureTime: | ||
| type: string | ||
| format: date-time | ||
| description: The departure time from the stop point. Local time zone should be used. | ||
| stopPointName: | ||
| type: string | ||
| description: Name of the stop point | ||
| stopPointRef: | ||
| type: string | ||
| format: stop-point-ref | ||
| description: Reference to the stop point |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| mode: | ||
| type: string | ||
| description: These classes are taken from the NeTeX standard, but ALL and UNKNOWN are removed. On the other hand OTHER and PARKING are added. | ||
| enum: [ AIR, | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this should be extensible |
||
| BUS, | ||
| TROLLEYBUS, | ||
| TRAM, | ||
| COACH, | ||
| RAIL, | ||
| INTERCITYRAIL, | ||
| URBANRAIL, | ||
| METRO, | ||
| WATER, | ||
| CABLEWAY, | ||
| FUNICULAR, | ||
| TAXI, | ||
| SELFDRIVE, | ||
| FOOT, | ||
| BICYCLE, | ||
| MOTORCYCLE, | ||
| CAR, | ||
| SHUTTLE, | ||
| OTHER, | ||
| PARKING, | ||
| MOPED, | ||
| STEP, | ||
| FERRY ] | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| type: object | ||
| properties: | ||
| exclude: | ||
| type: boolean | ||
| description: If true, the filter will exclude the specified item instead of including them |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| type: object | ||
| properties: | ||
| currency: | ||
| type: string | ||
| description: The currency code for the search offer request (e.g., USD, EUR) | ||
| format: ISO4217 | ||
| maxResults: | ||
| type: integer | ||
| description: Maximum number of results to return for the search offer request | ||
| default: 10 | ||
| minimum: 1 | ||
| allowPartialResults: | ||
| type: boolean | ||
| description: Whether to allow partial results if the full request cannot be fulfilled | ||
| default: false |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| type: object | ||
| properties: | ||
| searchOfferId: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. should be 'allOf' + request.yaml. The searchOfferId = requestId |
||
| type: string | ||
| description: Unique identifier for the search offer request | ||
| format: search-offer-ref | ||
| trip: | ||
| $ref: .\Trip.yaml | ||
| requestedSections: | ||
| type: array | ||
| items: | ||
| $ref: .\TripSection.yaml | ||
| policy: | ||
| $ref: .\SearchOfferPolicy.yaml | ||
| filters: | ||
| type: array | ||
| items: | ||
| oneOf: | ||
| - $ref: .\ServiceFilter.yaml | ||
| - $ref: .\DistributionFilter.yaml | ||
| # - $ref: .\PriceFilter.yaml | ||
| # - $ref: .\AreaFilter.yaml | ||
| # - $ref: .\TimeFilter.yaml | ||
| # - $ref: .\AccessibilityFilter.yaml | ||
| # - $ref: .\OperatorFilter.yaml | ||
| - $ref: .\FlexibilityFilter.yaml | ||
| discriminator: | ||
| propertyName: filterType | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| allOf: | ||
| - $ref: .\SearchOfferFilter.yaml | ||
| - type: object | ||
| required: | ||
| - filterType | ||
| properties: | ||
| filterType: | ||
| type: string | ||
| const: mode | ||
| mode: | ||
| $ref: .\Mode.yaml | ||
| class: | ||
| type: string | ||
| x-enum-values: | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. airline categories are of little use. Use rail and public transport classes: ["FIRST","SECOND","ANY_CLASS"] |
||
| - economy | ||
| - business | ||
| - first | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| allOf: | ||
| - $ref: .\Leg.yaml | ||
| - type: object | ||
| properties: | ||
| legType: | ||
| type: string | ||
| description: discriminator for the leg type | ||
| const: timed | ||
| journeyRef: | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The TimedLeg must contain the DatedJourney, a ref does not work. |
||
| type: string | ||
| description: Reference to the journey associated with this leg | ||
| format: journey-ref | ||
| lineRef: | ||
| type: string | ||
| description: Reference to the line associated with this leg | ||
| format: line-ref | ||
| operatingDayRef: | ||
| type: string | ||
| description: Reference to the operating day associated with this leg | ||
| format: day-of-week | ||
| enum: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday] | ||
| privateMode: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Again, what does this mean?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. To make consistent with Transmodel: PersonalModesOfOperationEnumeration
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Though it might not be needed in the TimedLeg
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove |
||
| type: string | ||
| enum: [] | ||
| ptMode: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why isn't 'mode' on the Leg level (as specified) enough?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove |
||
| type: string | ||
| enum: [] | ||
| start: | ||
| $ref: .\LegBoard.yaml | ||
| end: | ||
| $ref: .\LegAlight.yaml | ||
| intermediateStops: | ||
| type: array | ||
| description: List of intermediate stops for this leg | ||
| items: | ||
| $ref: .\LegIntermediate.yaml | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| allOf: | ||
| - $ref: .\Leg.yaml | ||
| - type: object | ||
| properties: | ||
| legType: | ||
| type: string | ||
| description: discriminator for the leg type | ||
| const: transfer | ||
| continuousMode: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And again, I don't know what should be in here. There is already 'mode' at leg level, what does this mode mean?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove |
||
| type: string | ||
| enum: [] | ||
| duration: | ||
| type: integer | ||
| description: Duration of the leg in minutes | ||
| transferMode: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And again, I don't know what should be in here. There is already 'mode' at leg level, what does this mode mean?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove |
||
| type: string | ||
| enum: [] | ||
| start: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. startPlace? |
||
| type: string | ||
| format: place-ref | ||
| end: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. endPlace? |
||
| type: string | ||
| format: place-ref | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is a large differece between the trip data in the request and the trip data in the reply. The requested trip data are reduced and only need to describe the trip uniquely whereas the trip in replies includes a lot more details (realtime delay information, platform information, the time format for departure and arrival is different (local date time in requests, UTC with offset in replies). I would suggest to use a TripSpecification, LegSpecification in the request. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| type: object | ||
| required: | ||
| - legs | ||
| - tripId | ||
| properties: | ||
| tripId: | ||
| type: string | ||
| description: Unique identifier for the trip | ||
| format: trip-ref | ||
| legs: | ||
| type: array | ||
| items: | ||
| oneOf: | ||
| - $ref: .\TimedLeg.yaml | ||
| - $ref: .\ContinuousLeg.yaml | ||
| - $ref: .\TransferLeg.yaml | ||
| discriminator: | ||
| propertyName: legType |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to add: