Home » NOVA Offer » NOVA Offer Service Model

NOVA Offer Service Model (Package ch.voev.nova.offer.servicemodel)

Types / Enumerations:


Types

AbstractPassengerInfo

Type is base class to provide passenger information as part of an offer request.


Type Details Details
Alias ReisendenInfo
Abstract true


Properties / Associations

Name Type Multiplicity Constraints Description
externalPassengerID ExternalReferenceID 1..1 External reference ID that is provided by a client to identify a passenger. This is not the TKID of a customer. The external passenger ID must be unique within the scope of the request.
passengerType PassengerType 1..1


AbstractPriceInfo


Type Details Details
Abstract true


Properties / Associations

Name Type Multiplicity Constraints Description
salesPrice Price 1..1 Price the customer has to pay for this offer.
product Product 1..1


AbstractProductSelection

Type is base class for selection of products that should be considered within the offer creation process.


Type Details Details
Abstract true


Properties / Associations

Name Type Multiplicity Constraints Description


DeliveryOption

Type defines how an offer can be delivered to a customer.

The issuing type limits the possible fulfillment types in general. In addition, the supported fulfillment types can be further restricted by other parameters. Due to that, this class describes depending on the issuing type which fulfillment types are possible.


Properties / Associations

Name Type Multiplicity Constraints Description
issuingType IssuingType 1..1 Issuing type for which this delivery option is applicable.
applicableFulfillmentTypes FulfillmentType 1..* List of fulfillment types that are applicable for an offer depending on an issuing type.
checkoutParameters CheckoutParameter 0..* List of checkout parameters that need to be provided when this delivery option will be chosen.


DependencyNode

Type defines a dependency on other offers. Using this type it is possible to define how many of the dependent offers are required. To express this min and maxwill be set accordingly.

All dependent offers always have the same pricing subject type.


Properties / Associations

Name Type Multiplicity Constraints Description
min java.lang.Integer 1..1 Minimum amount of offers that have to be selected to fulfill the constraints that are expressed by this dependency node.
max java.lang.Integer 0..1 Minimum amount of offers that have to be selected to fulfill the constraints that are expressed by this dependency node. If the property is not set then there are no constraints coerning the maximum selection (= unbounded).
pricingSubject PricingSubjectType 1..1 Pricing subject type of all offers that are grouped by this dependency node.
offerIDs OfferID 1..* IDs of all dependent offers.
owner OfferDependency 1..1 transient


Offer

Type represents an generic offer that contains the minimum information that are required for offers on NOVA. Depending on the pricing domain there might be extensions of this class to express domain specifics on offer level.


Properties / Associations

Name Type Multiplicity Constraints Description
offerID OfferID 1..1 ID of the offer. This ID required when you want to create a booking.
messages MessageID 0..*
offerExpiration java.time.OffsetDateTime 1..1 Timestamp when the offer is about to expire.
pricingSubject PricingSubject 1..1 Pricing subject of this offer.
checkoutParameters CheckoutParameter 0..* List of checkout parameters that do not depend on anything but the offer itself.

In addition there also might be checkout parameters that depend on the delivery option. these checkout parameters are defined by each DeliveryOption.
offerLineUp OfferLineUp 1..1 transient
Back reference to offer line-up to simplify processing of offer data structures.

Please be aware that this back reference is only available in the generated Java Code but not in OpenAPI and JSON representation of the objects.
supportedMediaTypes FulfillmentMediaType 0..*
deliveryOptions DeliveryOption 1..* List with all delivery options for the offer. A delivery option defines depending on the issuing type which fulfillment types can be used.

As the delivery options depend on various parameters, this information is provided dynamically for every offer and not as master data.


OfferDependency

Offer dependencies are used to express for a list of offers which dependencies to other offers exist.

Dependencies might be other offers that are mandatory or optional in combination with an offer. Offers that share the same dependencies are grouped into one offer dependency if they have the same pricing subject.

Please be aware that there might be multiple offer dependencies for one offer.


Properties / Associations

Name Type Multiplicity Constraints Description
messages MessageID 0..*
offerIDs OfferID 1..* List of offers that all share the dependencies to other offers as defined by dependencies.
pricingSubject PricingSubjectType 1..1 Pricing subject type of all offers that share the dependencies as defined by this object.
dependencyNodes DependencyNode 1..* List with so called dependency nodes. Dependency nodes are used to group several dependent offers that are connected with each other.
offerLineUp OfferLineUp 1..1 transient
Back reference to offer line-up to simplify processing of offer data structures.

Please be aware that this back reference is only available in the generated Java Code but not in OpenAPI and JSON representation of the objects.


Type is used to aggregate all domain extensions that belong to an offer.


Properties / Associations

Name Type Multiplicity Constraints Description
offerID OfferID 1..1 ID of the offer to which the domain extensions of this object belong to.
domainExtensions DomainExtension 0..* List of domain extensions that are aggregated by this object.


OfferLineUp

Type is a container for the various objects that belong together in the context of offers. Besides the offers itself this object also provides information about the dependencies between offers and defines which offers are applicable for which passengers.

If you are using the generated Java classes please be aware that there are already some convenience operations on the class that might make working with the response a little simpler e.g. there is an operation that lets you check if your offer selection matches to the defined dependencies validateOfferSelection(...).


Properties / Associations

Name Type Multiplicity Constraints Description
offerDependencies OfferDependency 0..* Full list of offer dependencies that need to be considered in combination with the returned response.
offerPassengerAssociations OfferPassengerAssociation 1..* List with associations between offers and passengers. For every passenger from the offer request there will be a OfferPassengerAssociation in an offer response. Even when there are no offers for a passenger.
offers Offer 0..* List of all offers that belong to an offer response.


OfferPassengerAssociation

Type defines which offers are applicable to a passenger from an offer request. A passenger might be a single passenger as well as multiple passengers together.


Properties / Associations

Name Type Multiplicity Constraints Description
offerIDs OfferID 0..* IDs of the offers that are applicable for a passenger from an offer request. If no offers are applicable then this list is empty.
offerLineUp OfferLineUp 1..1 transient
Back reference to offer line-up to simplify processing of offer data structures.

Please be aware that this back reference is only available in the generated Java Code but not in OpenAPI and JSON representation of the objects.
startOfferIDs OfferID 0..* IDs of the start offers that are applicable for a passenger from an offer request. If no offers are applicable then this list is empty.
passengerIDs ExternalReferenceID 1..* @Size(min=1, max=UNLIMITED)
The passenger(s) that are booking one or more offers (together).

This List will usually contain a single (1) passenger.
In this case, this one bookable item will be booked (1 bookable item per offer).

In rare cases, this List can contain multiple (2+) passengers.
In this case, all passengers will share a single bookable item to be booked (1 bookable item per offer).

If an offer can be booked by multiple passengers independently, then multiple OfferPassengerAssociations (with a single passenger each) must be provided.
In this case, multiple bookable items will be booked (1 bookable item per offer and passenger).


OfferResponse

Generic response object that is returned as response for all kinds of NOVA offer requests.

This object contains a so called offer line up which contains all the created offers and also describes the relations ships between offers as well as between offers and passengers. It also contains all domain extensions that were requested by a client.

In addition it also contains general response information like a response status and a list of messages.


Properties / Associations

Name Type Multiplicity Constraints Description
requestedDomainExtensions OfferDomainExtensionLink 0..* List of public domain extensions that were requested by a client in the offer request.

There will be an OfferDomainExtensionLink object for every returned offer.
offerLineUp OfferLineUp 1..1


PassengerIdentification

TKID based identification of a customer.


Type Details Details
Parent Class AbstractPassengerInfo


Properties / Associations

Name Type Multiplicity Constraints Description
customerID TKID 1..1 TKID of the passenger.
additionalReductionCards ReductionCardCode 0..* Additional reduction cards of the passenger. This property is intended to be used for reductions cards that can not be resolved based on the TKID of a customer.


PassengerInfo

Value-based way to provide passenger information as part of an offer request.


Type Details Details
Parent Class AbstractPassengerInfo


Properties / Associations

Name Type Multiplicity Constraints Description
age Integer 0..1 @PositiveOrZero
Age of the passenger that is represented by this object. Either age or dateOfBirth has to be set.
dateOfBirth java.time.LocalDate 0..1 @PastOrPresent
Date of birth of the passenger that is represented by this object. Either age or dateOfBirth has to be set.
gender Gender 0..1 Gender o the passenger.
reductionCards ReductionCardCode 0..* All reduction cards of the passenger. As the customer can not really be identified by NOVA all reduction cards of the customer have to be provided. Only provided reduction cards can be considered during the offer creation process.


ProductNumberBasedSelection

Type is used to select products for offer creation based on a product number.


Type Details Details
Parent Class AbstractProductSelection


Properties / Associations

Name Type Multiplicity Constraints Description
productNumber ProductNumber 1..1 Product number that has be selected.


TaxonomyProductSelection

Type is used to select products for offer creation based on a product taxonomy.


Type Details Details
Parent Class AbstractProductSelection


Properties / Associations

Name Type Multiplicity Constraints Description
productTaxonomyClassPath ProductTaxonomyClassPath 1..1 Taxonomy that should be used to identify the products that should be considered in the offer creation process.