osdm_sys/models/
booked_offer_request.rs

1/*
2 * UIC 90918-10 - OSDM
3 *
4 * Specifications for the OSDM API standard. The OSDM specification supports two modes of operation: Retailer Mode and Distributor Mode. The API works identically in both modes, except that in distributor mode the API also returns fare information.  The following resources are key to get started:    -  [Processes](https://osdm.io/spec/processes/)   -  [Models](https://osdm.io/spec/models/)   -  [Getting started](https://osdm.io/spec/getting-started/) 
5 *
6 * The version of the OpenAPI document: 3.7.0
7 * Contact: osdm@uic.org
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// BookedOfferRequest : adding an offer to a booking as pre-booked. additional passengers that were not already in the booking are added in additional passengers existing passengers are referenced in passengerRef.
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct BookedOfferRequest {
17    #[serde(rename = "offers")]
18    pub offers: Vec<models::OfferSelection>,
19    /// Existing passengers are linked with the given booking and do not need to be referenced in the request. 
20    #[serde(rename = "passengers", skip_serializing_if = "Option::is_none")]
21    pub passengers: Option<Vec<models::Passenger>>,
22    #[serde(rename = "additionalPassengerSpecifications", skip_serializing_if = "Option::is_none")]
23    pub additional_passenger_specifications: Option<Vec<models::PassengerSpecification>>,
24    #[serde(rename = "promotionCodes", skip_serializing_if = "Option::is_none")]
25    pub promotion_codes: Option<Vec<models::PromotionCode>>,
26}
27
28impl BookedOfferRequest {
29    /// adding an offer to a booking as pre-booked. additional passengers that were not already in the booking are added in additional passengers existing passengers are referenced in passengerRef.
30    pub fn new(offers: Vec<models::OfferSelection>) -> BookedOfferRequest {
31        BookedOfferRequest {
32            offers,
33            passengers: None,
34            additional_passenger_specifications: None,
35            promotion_codes: None,
36        }
37    }
38}
39