osdm_sys/models/
exchange_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 ExchangeOfferCollectionRequest {
18 #[serde(rename = "fulfillmentIds")]
19 pub fulfillment_ids: Vec<String>,
20 #[serde(rename = "overruleCode", skip_serializing_if = "Option::is_none")]
22 pub overrule_code: Option<String>,
23 #[serde(rename = "tripSpecifications", skip_serializing_if = "Option::is_none")]
24 pub trip_specifications: Option<Vec<models::TripSpecification>>,
25 #[serde(rename = "tripIds", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
26 pub trip_ids: Option<Option<Vec<String>>>,
27 #[serde(rename = "tripSearchCriteria", skip_serializing_if = "Option::is_none")]
28 pub trip_search_criteria: Option<Box<models::TripSearchCriteria>>,
29 #[serde(rename = "nonTripSearchCriteria", skip_serializing_if = "Option::is_none")]
30 pub non_trip_search_criteria: Option<Box<models::NonTripSearchCriteria>>,
31 #[serde(rename = "requestedSections", skip_serializing_if = "Option::is_none")]
32 pub requested_sections: Option<Vec<models::Section>>,
33 #[serde(rename = "offerSearchCriteria", skip_serializing_if = "Option::is_none")]
34 pub offer_search_criteria: Option<Box<models::OfferSearchCriteria>>,
35 #[serde(rename = "anonymousPassengerSpecifications")]
36 pub anonymous_passenger_specifications: Vec<models::AnonymousPassengerSpecification>,
37 #[serde(rename = "corporateCodes", skip_serializing_if = "Option::is_none")]
38 pub corporate_codes: Option<Vec<models::CorporateCode>>,
39 #[serde(rename = "promotionCodes", skip_serializing_if = "Option::is_none")]
40 pub promotion_codes: Option<Vec<models::PromotionCode>>,
41 #[serde(rename = "requestedFulfillmentOptions", skip_serializing_if = "Option::is_none")]
42 pub requested_fulfillment_options: Option<Vec<models::FulfillmentOption>>,
43 #[serde(rename = "embed", skip_serializing_if = "Option::is_none")]
44 pub embed: Option<Vec<models::OfferCollectionResponseContent>>,
45}
46
47impl ExchangeOfferCollectionRequest {
48 pub fn new(fulfillment_ids: Vec<String>, anonymous_passenger_specifications: Vec<models::AnonymousPassengerSpecification>) -> ExchangeOfferCollectionRequest {
50 ExchangeOfferCollectionRequest {
51 fulfillment_ids,
52 overrule_code: None,
53 trip_specifications: None,
54 trip_ids: None,
55 trip_search_criteria: None,
56 non_trip_search_criteria: None,
57 requested_sections: None,
58 offer_search_criteria: None,
59 anonymous_passenger_specifications,
60 corporate_codes: None,
61 promotion_codes: None,
62 requested_fulfillment_options: None,
63 embed: None,
64 }
65 }
66}
67