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