use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct OfferCollectionRequest {
#[serde(rename = "tripIds", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub trip_ids: Option<Option<Vec<String>>>,
#[serde(rename = "inboundTripIds", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub inbound_trip_ids: Option<Option<Vec<String>>>,
#[serde(rename = "tripSpecifications", skip_serializing_if = "Option::is_none")]
pub trip_specifications: Option<Vec<models::TripSpecification>>,
#[serde(rename = "inboundTripSpecifications", skip_serializing_if = "Option::is_none")]
pub inbound_trip_specifications: Option<Vec<models::TripSpecification>>,
#[serde(rename = "tripSearchCriteria", skip_serializing_if = "Option::is_none")]
pub trip_search_criteria: Option<Box<models::TripSearchCriteria>>,
#[serde(rename = "tripResponseParameters", skip_serializing_if = "Option::is_none")]
pub trip_response_parameters: Option<Box<models::TripResponseParameters>>,
#[serde(rename = "nonTripSearchCriteria", skip_serializing_if = "Option::is_none")]
pub non_trip_search_criteria: Option<Box<models::NonTripSearchCriteria>>,
#[serde(rename = "requestedSections", skip_serializing_if = "Option::is_none")]
pub requested_sections: Option<Vec<models::Section>>,
#[serde(rename = "offerSearchCriteria", skip_serializing_if = "Option::is_none")]
pub offer_search_criteria: Option<Box<models::OfferSearchCriteria>>,
#[serde(rename = "anonymousPassengerSpecifications")]
pub anonymous_passenger_specifications: Vec<models::AnonymousPassengerSpecification>,
#[serde(rename = "corporateCodes", skip_serializing_if = "Option::is_none")]
pub corporate_codes: Option<Vec<models::CorporateCode>>,
#[serde(rename = "promotionCodes", skip_serializing_if = "Option::is_none")]
pub promotion_codes: Option<Vec<models::PromotionCode>>,
#[serde(rename = "requestedFulfillmentOptions", skip_serializing_if = "Option::is_none")]
pub requested_fulfillment_options: Option<Vec<models::FulfillmentOption>>,
#[serde(rename = "embed", skip_serializing_if = "Option::is_none")]
pub embed: Option<Vec<models::OfferCollectionResponseContent>>,
}
impl OfferCollectionRequest {
pub fn new(anonymous_passenger_specifications: Vec<models::AnonymousPassengerSpecification>) -> OfferCollectionRequest {
OfferCollectionRequest {
trip_ids: None,
inbound_trip_ids: None,
trip_specifications: None,
inbound_trip_specifications: None,
trip_search_criteria: None,
trip_response_parameters: None,
non_trip_search_criteria: None,
requested_sections: None,
offer_search_criteria: None,
anonymous_passenger_specifications,
corporate_codes: None,
promotion_codes: None,
requested_fulfillment_options: None,
embed: None,
}
}
}