Skip to content
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

[CHANGE REQUEST] Add fields like place of birth to the conditionRequireBookingData #519

Open
matt-wirtz opened this issue Dec 20, 2023 · 5 comments · May be fixed by #525
Open

[CHANGE REQUEST] Add fields like place of birth to the conditionRequireBookingData #519

matt-wirtz opened this issue Dec 20, 2023 · 5 comments · May be fixed by #525
Labels
WT1 To be discussed at the next meeting
Milestone

Comments

@matt-wirtz
Copy link
Collaborator

API Version

1.5

Summary

The possible field of required booking data should be extended by:

  • PLACE_OF_BIRTH: Typically used for identification processes. Not part of ID_CARDS (yet) and maybe more appropriate here.
  • MP_USER_ID: Unique ID of the user generated by the MP. If the TOs IT architecture is based on user accounts it makes it easier to assign the booking to the correct user account avoiding duplicates. It makes it also possible for the TO to block users without ambiguity who have open items for clarification from previous bookings, e.g. open issues regarding damages.
  • FIRST_NAME: Typically the name of the user is provided separately by first and last name. It's much easier to concat first and last name in case they are not separately stored in comparison to separate both later.
  • LAST_NAME: Typically the name of the user is provided separately by first and last name. It's much easier to concat first and last name in case they are not separately stored in comparison to separate both later.
  • RATING: MPs might distinguish their users into different status levels, e.g. allowing the more privileged status level to use more luxury vehicles. In case the TO should consider the status level in the booking process the info needs to be provided by the MP.

Expected Behavior

Listed fields should be available in the conditionRequireBookingData object.

Current Behavior

Listed fields are currently not part of the conditionRequireBookingData.

Possible Solution

Add listed fields.
Mark the existing field NAME as deprecated.

@edwinvandenbelt edwinvandenbelt added the WT1 To be discussed at the next meeting label Jan 2, 2024
@edwinvandenbelt
Copy link
Collaborator

Thank you Matthias! We should split this issue into several issues:
A) Adding the placeOfBirth (and countryOfBirth?) is a good idea, but it makes me also wonder why it is there, in the requested booking data. Maybe only to determine the age? Probably not for identification reasons...
B) MP_USER_ID probably refers to the bookingRequest.customer.id. This is a required field by default. Or do I misinterpret this one?
C) Splitting NAME into FIRST_NAME and LAST_NAME: might be a good idea, but what to do with the other name fields? Like middle name, pre- and postfixes?
D) RATING: not possible, unless RATING is standardized and it is already needed in the planning, in the booking it is too late. We use the 'userGroups' in the planning request for the functionality you describe since it depends on the classification of the customer which legs (and assets) can be used. Nevertheless, it is still a bilateral agreement between MP and TO.

@matt-wirtz
Copy link
Collaborator Author

A) Yes, placeOfBirth is used in Germany for identification issues if the person needs to be identified by authorities. And yes, would make sense to have a countryOfBirth there too.
B) You are right. That's the bookingRequest.customer.id. No need for a change there.
C) Good question if middle name and pre- and postfixes should be included here too. There are part of the customer data. Maybe all attributes of the customer object should be valid values for conditionRequireBookingData. Except the mandatory fields like customer.id.
D) Yes, this functionality is covered up by userGroups. No need for changes here.

So B & D are obsolete. Should I then create separate change requests for A and C?

@edwinvandenbelt edwinvandenbelt added this to the Elephant - 2.0 milestone Jan 17, 2024
@matt-wirtz
Copy link
Collaborator Author

So the plan is to add these fields to the required booking data:

  • placeOfBirth (and add to the customer object)
  • countryOfBirth (and add to the customer object)
  • firstName
  • lastName
  • middleName
  • prefix
  • postfix
  • knownIdentifier
  • knownIdentifierProvider

I double checked with the customer object and added all fields that seem applicable. If these fields would not be part of the required booking data TOs could not ensure that the data is provided. So they would be more or less useless to have them in the customer object.

@edwinvandenbelt
Copy link
Collaborator

I've made another (more flexible) setup in V2.0:

requiredFields:
type: array
description: an array containing labels that identify specific fields that are required in the booking process

all fields of the bookingRequest can become required, navigating with dots, square brackets and field names.

A few examples

from.address.station implies that the station reference is mandatory,

travelers[].age requires an age for each traveler,

travelers[0].licenseTypes[
].licenseCode should expose the fact that the first traveler has a driver's license (f.i. D4, for a car)

or customer.email for the email address of the customer
maxItems: 50
items:
type: string

@edwinvandenbelt edwinvandenbelt modified the milestones: Elephant - 2.0, 1.6 Jan 31, 2024
@edwinvandenbelt
Copy link
Collaborator

See the last comment, we don't need to make another ticket for v2.0. This functionality is already covered by default in v2.0 (but look at the v2.0 branche for more details)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WT1 To be discussed at the next meeting
Projects
Status: Done
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants