Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions deliverables/1 search offers/ContinuousLeg.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
allOf:
- $ref: .\Leg.yaml
- type: object
properties:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to add:

  • modeOfOperation: enum, to be found in OJP/NeTEx. (fixed)

legType:
type: string
description: discriminator for the leg type
const: continuous
continuousMode:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know this one.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The 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:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Ulf9 What is this? I don't see it in TM.

@TuThoThai TuThoThai Jul 2, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be PersonalModeofOperations

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove

type: string
enum: []
start:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

startPlace?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

keep consistent with TimedLeg

type: string
format: place-ref
end:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and endPlace?

type: string
format: place-ref
63 changes: 63 additions & 0 deletions deliverables/1 search offers/DistributionFilter.yaml
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"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The 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:
type: string
description: The content standard of the offer.
x-enum-values:
- "ISO/IEC 18004" # QR Code
- "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

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is calypso card somewhere in that list ?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The 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.

16 changes: 16 additions & 0 deletions deliverables/1 search offers/FlexibilityFilter.yaml
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"
- "exchangeable"
- "refundable"
31 changes: 31 additions & 0 deletions deliverables/1 search offers/Leg.yaml
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: []

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be a ref to Mode.yaml

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The 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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Further discussion / modelling is needed on the concept of parallel leg especially if we are taking into account parking

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"
20 changes: 20 additions & 0 deletions deliverables/1 search offers/LegAlight.yaml
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
26 changes: 26 additions & 0 deletions deliverables/1 search offers/LegBoard.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
type: object
required:
- pickupLocation
- 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:
type: array
items:
type: string
format: train-number
description: List of train numbers associated with this leg, if applicable
20 changes: 20 additions & 0 deletions deliverables/1 search offers/LegIntermediate.yaml
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
27 changes: 27 additions & 0 deletions deliverables/1 search offers/Mode.yaml
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,
BUS,
TROLLEYBUS,
TRAM,
COACH,
RAIL,
INTERCITYRAIL,
URBANRAIL,
METRO,
WATER,
CABLEWAY,
FUNICULAR,
TAXI,
SELFDRIVE,
FOOT,
BICYCLE,
MOTORCYCLE,
CAR,
SHUTTLE,
OTHER,
PARKING,
MOPED,
STEP,
FERRY ]
5 changes: 5 additions & 0 deletions deliverables/1 search offers/SearchOfferFilter.yaml
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
15 changes: 15 additions & 0 deletions deliverables/1 search offers/SearchOfferPolicy.yaml
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
28 changes: 28 additions & 0 deletions deliverables/1 search offers/SearchOfferRequest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
type: object
properties:
searchOfferId:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The 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
17 changes: 17 additions & 0 deletions deliverables/1 search offers/ServiceFilter.yaml
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:
- economy
- business
- first
36 changes: 36 additions & 0 deletions deliverables/1 search offers/TimedLeg.yaml
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:
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:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, what does this mean?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To make consistent with Transmodel: PersonalModesOfOperationEnumeration

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Though it might not be needed in the TimedLeg

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove

type: string
enum: []
ptMode:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why isn't 'mode' on the Leg level (as specified) enough?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The 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
23 changes: 23 additions & 0 deletions deliverables/1 search offers/TransferLeg.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:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The 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?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The 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:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The 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?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove

type: string
enum: []
start:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

startPlace?

type: string
format: place-ref
end:

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

endPlace?

type: string
format: place-ref
18 changes: 18 additions & 0 deletions deliverables/1 search offers/Trip.yaml
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
Loading