Skip to content

Search offers - the 'Who' part - 20260702#65

Open
edwinvandenbelt wants to merge 3 commits into
mainfrom
Add-search-offer-concepts
Open

Search offers - the 'Who' part - 20260702#65
edwinvandenbelt wants to merge 3 commits into
mainfrom
Add-search-offer-concepts

Conversation

@edwinvandenbelt

@edwinvandenbelt edwinvandenbelt commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator
image Note: ignore the search offer policy here.

This is the new image:
image

Example travelling party, a person with a bike (indicative):

[
{
  "travellingEntityId": "TR-342",
  "entitlements": [ { "code": "SUMMER27", "entitlementType": "reduction_code", "issuer": "XEI" } ].
  "entityType": "traveller",
  "age": 34
},
{
  "travellingEntityId": "TR-24391",
  "entityType": "vehicle",
  "type": "bicycle"
}
]

residency:
type: string
description: Country of residency (ISO 3166-1 alpha-2) for domestic vs. international fare eligibility.
dateOfBirth:

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.

Not only field name TBD, but is it still needed 'on top of' the age in the Traveller itself?

const: animal
type:
type: string
description: Category of animal (operator-defined, e.g. dog, cat, other).

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.

This is not operator-defined. We can propose categories, and if organisations want to extend it, they can, after notifying the OTI governance body.

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.

Could also be a categorisation by size of the animal as it often as more impact of the footprint of a travelling entity

@edwinvandenbelt

edwinvandenbelt commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator Author

@Ulf9 I'm missing the 'entitlement rights' in the diagram.

@edwinvandenbelt edwinvandenbelt changed the title Added search offer concepts Added search offer concepts - the travelling party Jun 19, 2026
@edwinvandenbelt edwinvandenbelt changed the title Added search offer concepts - the travelling party Search offers - the 'Who' part Jun 22, 2026
@edwinvandenbelt edwinvandenbelt changed the title Search offers - the 'Who' part Search offers - the 'Who' part - 20260702 Jun 22, 2026
@Ulf9

Ulf9 commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

@Ulf9 I'm missing the 'entitlement rights' in the diagram.

OTI - Travelling Entity

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.).
required:
- entitlementType

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 think 'code' is required as well.

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.

Could you clarify what you mean by 'code' here? I would suggest adding something more explicit such as 'entitlementReference'

@@ -0,0 +1,23 @@
TravellerQualifyingCharacteristics:

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.

Isn't this an object for the purchase?

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.

I would also like to see it in the purchase

Comment thread deliverables/1 search offers/TravellingEntity.yaml
- car
- motorhome
- caravan
- motorbike

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.

rather use 'motorcycle' for consistency with other standards

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.

@TuThoThai to mlist here values from Transmodel for vehicle types for consistency

assistant:
type: boolean
description: Whether this traveller acts as an assistant to another traveller.
dateOfBirth:

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.

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

externalReference:
type: string
description: Caller-assigned external reference for this traveller.
personalNeeds:

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.

We could split between 'personalNeeds' & 'assistanceNeeds' with the 2nd one referring to specific services

- musicalInstrument
- other
length:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

length:
type: integer
minimum: 0
description: Length in centimetres.

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.

For consistency with other Transmodel-based standard: Length in meters.

description: Issuing authority or scheme name.
entitlementType:
type: string
description: Type of entitlement (operator-defined lookup value, e.g. loyaltyCard, discountCard, concession).

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.

As for animals, we can propose categories

properties:
issuer:
type: string
description: Issuing authority or scheme name.

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.

An optional identifier could be added (like RICS code)

type: string
qualifyingCharacteristics:
description: Additional qualifying characteristics used for eligibility determination. Only to specify in the purchase request
$ref: .\TravellerQualifyingCharacteristics.yaml No newline at end of file

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.

gender to be added (less and less required, but still necessary in some use cases)

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.

@OlivierBigex, For the search, though?
For the commit / lock part in which you exchange personal details such as the date of birth, ok. But clearly not here.

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.

Sure, but even to request availability of compartment in a night train ?

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

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.

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:

  • either generalize this area with any object held by a traveller that could impact the distribution (not only a mean to get a reduced or additional offer).
  • or create a dedicated object around fulfilment device held by the traveller (NFC card, ID of a enrolled smartphone)

width:
type: integer
minimum: 0
description: Width in centimetres.

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.

For consistency with other Transmodel-based standard: Width in meters.

height:
type: integer
minimum: 0
description: Height in centimetres.

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.

For consistency with other Transmodel-based standard: Height in meters.

minimum: 0
description: Length in centimetres.
width:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

minimum: 0
description: Width in centimetres.
height:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

minimum: 0
description: Height in centimetres.
weight:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

- bicycle
- trailerOnly
height:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

minimum: 0
description: Height of the vehicle in centimetres.
width:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

minimum: 0
description: Width of the vehicle in centimetres.
length:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

minimum: 0
description: Total length of the vehicle in centimetres.
weight:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

height:
type: integer
minimum: 0
description: Height of the vehicle in centimetres.

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.

For consistency with other Transmodel-based standard: Height in meters.

width:
type: integer
minimum: 0
description: Width of the vehicle in centimetres.

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.

For consistency with other Transmodel-based standard: Width in meters.

length:
type: integer
minimum: 0
description: Total length of the vehicle in centimetres.

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.

For consistency with other Transmodel-based standard: Length in meters.

- motorbike
- bicycle
- trailerOnly
height:

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

For consistency with the luggage, it should be in the same order "length, width, height, weight"

- towbar
- rear
height:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

minimum: 0
description: Height of the rack in centimetres.
width:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

minimum: 0
description: Width of the rack in centimetres.
length:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

minimum: 0
description: Length of the rack in centimetres.
weight:
type: integer

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.

For consistency with other Transmodel-based standard: decimal

- roof
- towbar
- rear
height:

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.

For consistency with the luggage, it should be in the same order "length, width, height"

height:
type: integer
minimum: 0
description: Height of the rack in centimetres.

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.

For consistency with other Transmodel-based standard: Height in meters.

width:
type: integer
minimum: 0
description: Width of the rack in centimetres.

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.

For consistency with other Transmodel-based standard: Width in meters.

length:
type: integer
minimum: 0
description: Length of the rack in centimetres.

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.

For consistency with other Transmodel-based standard: Length in meters.

entityType:
type: string
const: animal
type:

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.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants