osdm_sys/models/
offer_collection_request.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct OfferCollectionRequest {
17 #[serde(rename = "tripIds", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
19 pub trip_ids: Option<Option<Vec<String>>>,
20 #[serde(rename = "inboundTripIds", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
22 pub inbound_trip_ids: Option<Option<Vec<String>>>,
23 #[serde(rename = "tripSpecifications", skip_serializing_if = "Option::is_none")]
24 pub trip_specifications: Option<Vec<models::TripSpecification>>,
25 #[serde(rename = "inboundTripSpecifications", skip_serializing_if = "Option::is_none")]
26 pub inbound_trip_specifications: Option<Vec<models::TripSpecification>>,
27 #[serde(rename = "tripSearchCriteria", skip_serializing_if = "Option::is_none")]
28 pub trip_search_criteria: Option<Box<models::TripSearchCriteria>>,
29 #[serde(rename = "tripResponseParameters", skip_serializing_if = "Option::is_none")]
30 pub trip_response_parameters: Option<Box<models::TripResponseParameters>>,
31 #[serde(rename = "nonTripSearchCriteria", skip_serializing_if = "Option::is_none")]
32 pub non_trip_search_criteria: Option<Box<models::NonTripSearchCriteria>>,
33 #[serde(rename = "requestedSections", skip_serializing_if = "Option::is_none")]
34 pub requested_sections: Option<Vec<models::Section>>,
35 #[serde(rename = "offerSearchCriteria", skip_serializing_if = "Option::is_none")]
36 pub offer_search_criteria: Option<Box<models::OfferSearchCriteria>>,
37 #[serde(rename = "anonymousPassengerSpecifications")]
38 pub anonymous_passenger_specifications: Vec<models::AnonymousPassengerSpecification>,
39 #[serde(rename = "corporateCodes", skip_serializing_if = "Option::is_none")]
40 pub corporate_codes: Option<Vec<models::CorporateCode>>,
41 #[serde(rename = "promotionCodes", skip_serializing_if = "Option::is_none")]
42 pub promotion_codes: Option<Vec<models::PromotionCode>>,
43 #[serde(rename = "requestedFulfillmentOptions", skip_serializing_if = "Option::is_none")]
44 pub requested_fulfillment_options: Option<Vec<models::FulfillmentOption>>,
45 #[serde(rename = "embed", skip_serializing_if = "Option::is_none")]
47 pub embed: Option<Vec<models::OfferCollectionResponseContent>>,
48}
49
50impl OfferCollectionRequest {
51 pub fn new(anonymous_passenger_specifications: Vec<models::AnonymousPassengerSpecification>) -> OfferCollectionRequest {
53 OfferCollectionRequest {
54 trip_ids: None,
55 inbound_trip_ids: None,
56 trip_specifications: None,
57 inbound_trip_specifications: None,
58 trip_search_criteria: None,
59 trip_response_parameters: None,
60 non_trip_search_criteria: None,
61 requested_sections: None,
62 offer_search_criteria: None,
63 anonymous_passenger_specifications,
64 corporate_codes: None,
65 promotion_codes: None,
66 requested_fulfillment_options: None,
67 embed: None,
68 }
69 }
70}
71