osdm_sys/models/
offer_selection.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct OfferSelection {
17 #[serde(rename = "offerId")]
19 pub offer_id: String,
20 #[serde(rename = "externalRef", skip_serializing_if = "Option::is_none")]
22 pub external_ref: Option<String>,
23 #[serde(rename = "optionalReservationSelections", skip_serializing_if = "Option::is_none")]
25 pub optional_reservation_selections: Option<Vec<models::ReservationSelection>>,
26 #[serde(rename = "optionalAncillarySelections", skip_serializing_if = "Option::is_none")]
27 pub optional_ancillary_selections: Option<Vec<models::AncillarySelection>>,
28 #[serde(rename = "placeSelections", skip_serializing_if = "Option::is_none")]
29 pub place_selections: Option<Vec<models::PlaceSelection>>,
30 #[serde(rename = "afterSaleByRetailerOnly", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
32 pub after_sale_by_retailer_only: Option<Option<bool>>,
33 #[serde(rename = "appliedRegulatoryCondition", skip_serializing_if = "Option::is_none")]
34 pub applied_regulatory_condition: Option<models::RegulatoryCondition>,
35 #[serde(rename = "passengerRefs")]
36 pub passenger_refs: Vec<String>,
37 #[serde(rename = "throughTicketTags", skip_serializing_if = "Option::is_none")]
38 pub through_ticket_tags: Option<Vec<String>>,
39}
40
41impl OfferSelection {
42 pub fn new(offer_id: String, passenger_refs: Vec<String>) -> OfferSelection {
44 OfferSelection {
45 offer_id,
46 external_ref: None,
47 optional_reservation_selections: None,
48 optional_ancillary_selections: None,
49 place_selections: None,
50 after_sale_by_retailer_only: None,
51 applied_regulatory_condition: None,
52 passenger_refs,
53 through_ticket_tags: None,
54 }
55 }
56}
57