openactive / open-booking-api

Repository for the Open Booking API specification
Other
2 stars 3 forks source link

Refactor "availableChannel" #178

Open nickevansuk opened 3 years ago

nickevansuk commented 3 years ago

The current definition of availableChannel conflicts with other properties within the specification. This property should be refactored to fix the issues described below, simplify implementations, and ensure that it is fit for purpose going forward.

"availableChannel" is currently defined as the "The channels through which a booking can be made", with values of OpenBookingPrepayment, TelephoneAdvanceBooking, TelephonePrepayment and OnlinePrepayment. It is defined at the Offer level, and its functionality currently overlaps with prepayment and advanceBooking properties that are also defined at the `Offer level.

Additionally:

Hence an additional property should be defined at the Seller level:

This also allows brokers to easily filter on Sellers based on whether or not they support Open Booking.

This should be reflected in the definition of 8.1 Definition of a 'bookable' Opportunity and Offer pair

nickevansuk commented 3 years ago

Noting that bookingChannel is likely best moved back to a beta property, for future consideration for the modelling spec

nickevansuk commented 3 years ago

This translates into the following updates to the specification and tooling:

nickevansuk commented 2 years ago

Additionally this text describing openBookingInAdvance should be fixed in the specification:

Indicates whether to accept this offer, a Customer must book in advance, whether they must pay on attending, or have option to do either.

Should be

Indicates whether to accept this Offer, a Customer must book in advance (https://openactive.io/Required); or whether a Customer may choose either book in advance or simply "walk-in" without booking in advance (https://openactive.io/Optional). If Open Booking is not available for this Offer (https://openactive.io/Unavailable), the method of booking is specified elsewhere in the data, possibly by the url of the Offer.