-
Notifications
You must be signed in to change notification settings - Fork 0
Search offers - the 'Who' part - 20260702 #65
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 @@ | ||
| Animal: | ||
| allOf: | ||
| - $ref: .\TravellingEntity.yaml | ||
| - type: object | ||
| additionalProperties: false | ||
| description: ANIMAL — an animal travelling alongside its owner. | ||
| required: | ||
| - entityType | ||
| - type | ||
| properties: | ||
| entityType: | ||
| type: string | ||
| const: animal | ||
| type: | ||
| type: string | ||
| description: Category of animal (operator-defined, e.g. dog, cat, other). | ||
|
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. This is not operator-defined. We can propose categories, and if organisations want to extend it, they can, after notifying the OTI governance body.
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. Could also be a categorisation by size of the animal as it often as more impact of the footprint of a travelling entity |
||
| x-extensible-enum: | ||
| - dog | ||
| - cat | ||
| - other | ||
| assistant: | ||
| type: boolean | ||
| description: Whether this animal is a registered assistance animal. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| EntitlementRight: | ||
| type: object | ||
| additionalProperties: false | ||
| description: ENTITLEMENT RIGHT — a credential held by a travelling entity that may qualify for reduced fares or additional offers (loyalty card, discount card, company card, concession, etc.). | ||
|
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. I don't see where to give information on NFC smartcard held by a passenger. It is not a mean to get reduced or additional offer. thus:
|
||
| required: | ||
| - entitlementType | ||
|
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 think 'code' is required as well.
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. Could you clarify what you mean by 'code' here? I would suggest adding something more explicit such as 'entitlementReference' |
||
| properties: | ||
| issuer: | ||
| type: string | ||
| description: Issuing authority or scheme name. | ||
|
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. An optional identifier could be added (like RICS code) |
||
| entitlementType: | ||
| type: string | ||
| description: Type of entitlement (operator-defined lookup value, e.g. loyaltyCard, discountCard, concession). | ||
|
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. As for animals, we can propose categories |
||
| code: | ||
| type: string | ||
| description: Instance identifier such as a card number or voucher code. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| Luggage: | ||
| allOf: | ||
| - $ref: .\TravellingEntity.yaml | ||
| - type: object | ||
| additionalProperties: false | ||
| description: LUGGAGE — a bulky item a traveller brings that may affect offer availability, space allocation, or price. | ||
| required: | ||
| - entityType | ||
| - type | ||
| properties: | ||
| entityType: | ||
| type: string | ||
| const: luggage | ||
| type: | ||
| type: string | ||
| description: Category of item. | ||
| x-extensible-enum: | ||
| - bicycle | ||
| - pram | ||
| - luggage | ||
| - wheelchair | ||
| - skis | ||
| - snowboard | ||
| - musicalInstrument | ||
| - other | ||
| length: | ||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Length in centimetres. | ||
|
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. For consistency with other Transmodel-based standard: Length in meters. |
||
| width: | ||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Width in centimetres. | ||
|
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. For consistency with other Transmodel-based standard: Width in meters. |
||
| height: | ||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Height in centimetres. | ||
|
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. For consistency with other Transmodel-based standard: Height in meters. |
||
| weight: | ||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Weight in kilograms. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| PassengerVehicle: | ||
| allOf: | ||
| - $ref: .\TravellingEntity.yaml | ||
| - type: object | ||
| additionalProperties: false | ||
| description: PASSENGER VEHICLE — a traveller-owned vehicle to be transported (e.g. on a ferry or car-train). | ||
| required: | ||
| - entityType | ||
| - type | ||
| properties: | ||
| entityType: | ||
| type: string | ||
| const: vehicle | ||
| type: | ||
| type: string | ||
| description: Vehicle category. | ||
| x-extensible-enum: | ||
| - car | ||
| - motorhome | ||
| - caravan | ||
| - motorbike | ||
|
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. rather use 'motorcycle' for consistency with other standards
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. @TuThoThai to mlist here values from Transmodel for vehicle types for consistency |
||
| - bicycle | ||
| - trailerOnly | ||
| height: | ||
|
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. For consistency with the luggage, it should be in the same order "length, width, height, weight" |
||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Height of the vehicle in centimetres. | ||
|
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. For consistency with other Transmodel-based standard: Height in meters. |
||
| width: | ||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Width of the vehicle in centimetres. | ||
|
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. For consistency with other Transmodel-based standard: Width in meters. |
||
| length: | ||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Total length of the vehicle in centimetres. | ||
|
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. For consistency with other Transmodel-based standard: Length in meters. |
||
| weight: | ||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Total weight of the vehicle in kilograms. | ||
| trailer: | ||
| description: Details of a towed trailer, if applicable. | ||
| $ref: .\PassengerVehicle.yaml | ||
| vehicleRacks: | ||
| type: array | ||
| maxItems: 2 | ||
| description: Vehicle racks (e.g. bike racks) mounted on the vehicle. | ||
| items: | ||
| $ref: .\VehicleRack.yaml | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| Traveller: | ||
| allOf: | ||
| - $ref: .\TravellingEntity.yaml | ||
| - type: object | ||
| additionalProperties: false | ||
| description: TRAVELLER — a human traveller for whom offers are sought. | ||
| required: | ||
| - entityType | ||
| properties: | ||
| entityType: | ||
| type: string | ||
| const: traveller | ||
| age: | ||
| type: integer | ||
| minimum: 0 | ||
| description: Age in years at the start time of travel. | ||
| assistant: | ||
| type: boolean | ||
| description: Whether this traveller acts as an assistant to another traveller. | ||
| dateOfBirth: | ||
|
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. I would not include the 'date of birth' here as the age matters more when searching for an offer. I think 'date of birth' is used more for validation before commit |
||
| type: string | ||
| format: date | ||
| description: Date of birth. Enables age-band fare calculation. (TBD) | ||
| externalReference: | ||
| type: string | ||
| description: Caller-assigned external reference for this traveller. | ||
| personalNeeds: | ||
|
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. We could split between 'personalNeeds' & 'assistanceNeeds' with the 2nd one referring to specific services |
||
| type: array | ||
| description: Accessibility or personal needs types (operator-defined lookup values, see GET /personal-needs or GET /collections/personal-needs/items). | ||
| items: | ||
| type: string | ||
| qualifyingCharacteristics: | ||
| description: Additional qualifying characteristics used for eligibility determination. Only to specify in the purchase request | ||
| $ref: .\TravellerQualifyingCharacteristics.yaml | ||
|
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. gender to be added (less and less required, but still necessary in some use cases)
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. @OlivierBigex, For the search, though?
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. Sure, but even to request availability of compartment in a night train ? |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| TravellerQualifyingCharacteristics: | ||
|
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. Isn't this an object for the purchase?
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. I would also like to see it in the purchase |
||
| type: object | ||
| additionalProperties: false | ||
| description: TRAVELLER QUALIFYING CHARACTERISTICS — demographic and eligibility data used for fare calculation. May contain GDPR-sensitive personal data; transmit only when required. | ||
| properties: | ||
| fullName: | ||
| type: string | ||
| description: Full name of the traveller. | ||
| nationality: | ||
| type: string | ||
| description: Nationality (ISO 3166-1 alpha-2 country code). | ||
| residency: | ||
| type: string | ||
| description: Country of residency (ISO 3166-1 alpha-2) for domestic vs. international fare eligibility. | ||
| dateOfBirth: | ||
|
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. Not only field name TBD, but is it still needed 'on top of' the age in the Traveller itself? |
||
| type: string | ||
| format: date | ||
| description: Date of birth. (TBD — final field name pending.) | ||
| licenseTypes: | ||
| type: array | ||
| description: License types held by this traveller that may affect offer availability. | ||
| items: | ||
| type: string | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| TravellingEntity: | ||
| type: object | ||
| description: TRAVELLING ENTITY — base class for all entities taking part in a journey. Use the entityType discriminator to select the concrete sub-type. | ||
| required: | ||
| - entityType | ||
| - travellingEntityId | ||
| properties: | ||
| travellingEntityId: | ||
| type: string | ||
| description: Stable caller-assigned identifier for this entity. Must be unique within the request. | ||
| entityType: | ||
| type: string | ||
| enum: | ||
| - traveller | ||
| - vehicle | ||
| - animal | ||
| - luggage | ||
| description: Discriminator identifying the concrete type of this entity. | ||
| entitlementRights: | ||
| type: array | ||
| description: ENTITLEMENT RIGHTs held by this entity that may qualify for reduced fares or additional offers. | ||
| items: | ||
| $ref: .\EntitlementRight.yaml | ||
| example: | ||
|
edwinvandenbelt marked this conversation as resolved.
|
||
| { "travellingEntityId": "TE-123", "entityType": "traveller", "entitlementRights": [ { "entitlementRightId": "ER-456", "description": "Senior citizen discount" } ] } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| VehicleRack: | ||
| type: object | ||
| additionalProperties: false | ||
| description: VEHICLE RACK — a rack or carrier mounted on a passenger vehicle (e.g. roof rack, bike carrier). | ||
| properties: | ||
| type: | ||
| type: string | ||
| description: Type of rack. | ||
| x-extensible-enum: | ||
| - roofRack | ||
| - bikeCarrier | ||
| - skiCarrier | ||
| - towbarCarrier | ||
| - other | ||
| mounting: | ||
| type: string | ||
| description: How the rack is mounted on the vehicle. | ||
| enum: | ||
| - roof | ||
| - towbar | ||
| - rear | ||
| height: | ||
|
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. For consistency with the luggage, it should be in the same order "length, width, height" |
||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Height of the rack in centimetres. | ||
|
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. For consistency with other Transmodel-based standard: Height in meters. |
||
| width: | ||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Width of the rack in centimetres. | ||
|
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. For consistency with other Transmodel-based standard: Width in meters. |
||
| length: | ||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Length of the rack in centimetres. | ||
|
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. For consistency with other Transmodel-based standard: Length in meters. |
||
| weight: | ||
| type: integer | ||
|
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. For consistency with other Transmodel-based standard: decimal |
||
| minimum: 0 | ||
| description: Weight of the rack (including load) in kilograms. | ||
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.
it could be interesting to indicate the size of the animal. Particularly if it fits in a basket or not (possibly not the same price).