Home » NOVA Booking

Domain NOVA Booking

[Planned Breaking Changes] [Diagrams] [Artifacts] [Dependencies] [Provided REST Endpoints / Services] [Deprecations] [Maven Artifacts]


NOVA is able to sell a wide variety of offers from different domains. In order to not pollute our booking implementation with domain specifics a generic checkout process is implemented.

Capabilities:

Diagrams

NOVA Booking Data Types NOVA Booking Service Model NOVA Booking Master Data NOVA Booking Master Data
- Booking Data Types Domain
- Booking Data Types OpenAPI
- 01 Booking Domain Overview
- 02 Bookable Item Extension
- 03 Bookable Item Reporting
- 11 Booking Requests / Responses
- 20 NOVA Booking Service OpenAPI
- 21 NOVA Booking Service Roles
- Bookable Item States
- Checkout Parameter Value
- NOVA Booking Master Data - Data Unit
- NOVA Booking Master Data - Domain
- NOVA Booking Master Data - OpenAPI
- NOVA Booking Events
- NOVA Booking Events OpenAPI

Artifacts

Artifact Icon Maturity Level since
NOVA Booking Data Types 🐔 Crazy Chicken
NOVA Booking Service Model 🐔 Crazy Chicken
NOVA Booking Master Data 🐔 Crazy Chicken
NOVA Booking Events 🐔 Crazy Chicken

Dependencies

Artifact Outgoing Dependencies Incoming Dependencies
NOVA Booking Data Types - NOVA Common Data Types
- NOVA Master Data Data Types
- NOVA Booking Events
- NOVA Booking Service Model
- NOVA Booking Master Data
- NOVA Checkout Service Model
- NOVA Fulfillment Service Model
- NOVA Public Transport Service Model
- NOVA Travel Authorization Control Service Model
- NOVA Coupon Service Model
- NOVA Payment Service Model
- NOVA Payment Events
- NOVA Finance Service Model
NOVA Booking Service Model - NOVA Booking Data Types
- NOVA Common Data Types
- NOVA Customer Data Types
- NOVA Finance Service Model
- NOVA Offer Data Types
- NOVA Reseller Data Types
- NOVA System Management Service Model
- NOVA System Problem
- NOVA Booking Events
- NOVA Checkout Service Model
- NOVA Fulfillment Service Model
NOVA Booking Master Data - NOVA Booking Data Types
- NOVA Checkout Data Types
- NOVA Master Data Data Types
NOVA Booking Events - NOVA Booking Data Types
- NOVA Booking Service Model
- NOVA Common Data Types
- NOVA Common Events

Provided REST Endpoints / Services

BookingService

Service can be used to run the checkout process.

The booking service is responsible for: * creation of bookings * confirmation of bookings * cancellation of bookings * querying for bookings


REST Path / Operation Description
/bookings:createBooking [POST]

createBooking(CreateBookingRequest, SalesContext, IdempotencyHeader)
Operation creates a new booking based on the offer selection that is part of the request.

The selected offers will be validated against the offer lineup and the therein defined offer dependencies. In order to ensure a correct offer selection there must be only one offer selection per passenger inside one booking.
/bookings/{bookingID}:issueBooking [POST]

issueBooking(BookingID, IssueBookingRequest, SalesContext, IdempotencyHeader)
Operation issues the passed booking and all of its bookable items. Issuing a booking means that it is sold to a customer. This changes the state of a booking and its bookable items.

Afterwards if required, fulfillments can be created.
/bookings/{bookingID}:confirmBooking [POST]

confirmBooking(BookingID, SalesContext, IdempotencyHeader)
Operation can be used to confirm a booking.

As soon as a booking was confirmed it can not be canceled any more. If a booking should be undone completely or partially after confirmation then the refund process has to be used.
/bookings/{bookingID}:cancelBooking [POST]

cancelBooking(BookingID, SalesContext, IdempotencyHeader)
Operation cancels an existing booking. This is only possible until the booking was not confirmed.
/bookings:query-bookings [GET]

queryBookings(BookingQuery, PagingParams, SalesContext)
Operation can be used to query bookings.
/bookings:query-bookable-items [GET]

queryBookableItems(BookableItemQuery, PagingParams, SalesContext)
Operation can be used to query bookable items.
/bookings/bookable-items/domain-extensions [GET]

getBookableItemDomainExtensions(BookableItemID, SalesContext)
/bookings/bookable-items/appendixes [GET]

getBookableItemApendixes(BookableItemID, SalesContext)
Operation returns the bookable item appendixes of the objects with the passed IDs.

This operation is only intended for internal purposes and does not belong to the public part of the API.


Planned Breaking Changes

No breaking changes planned.

Deprecations

Package ch.voev.nova.booking.datatypes

No deprecations published.


Package ch.voev.nova.booking.servicemodel

No deprecations published.


Package ch.voev.nova.booking.masterdata

No deprecations published.


Package ch.voev.nova.booking.events

No deprecations published.


Maven Artifacts

The following table shows the Maven modules that might be used by integrators.

Module Type [1] NOVA Booking Data Types NOVA Booking Service Model NOVA Booking Master Data NOVA Booking Events
OpenAPI
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-datatypes-api-openapi</artifactId>
</dependency>
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-servicemodel-api-openapi</artifactId>
</dependency>
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-masterdata-api-openapi</artifactId>
</dependency>
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-events-api-openapi</artifactId>
</dependency>
Java
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-datatypes-api-java</artifactId>
</dependency>
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-servicemodel-api-java</artifactId>
</dependency>
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-masterdata-api-java</artifactId>
</dependency>
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-events-api-java</artifactId>
</dependency>
Java Runtime
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-datatypes-api-java-runtime</artifactId>
</dependency>
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-servicemodel-api-java-runtime</artifactId>
</dependency>
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-masterdata-api-java-runtime</artifactId>
</dependency>
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-events-api-java-runtime</artifactId>
</dependency>
Services
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-servicemodel-api-services</artifactId>
</dependency>
REST Client
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-servicemodel-api-rest-client</artifactId>
</dependency>
REST Client Starter
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-servicemodel-api-rest-client-starter</artifactId>
</dependency>
Jackson Starter
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-masterdata-api-starter</artifactId>
</dependency>
<dependency>
<groupId>ch.voev.nova.booking.api</groupId>
<artifactId>nova-booking-events-api-starter</artifactId>
</dependency>

[1] For further details about the different module types please see: