use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct OfferSearchCriteria {
#[serde(rename = "requestedOfferParts", skip_serializing_if = "Option::is_none")]
pub requested_offer_parts: Option<Vec<models::OfferPartType>>,
#[serde(rename = "productTags", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub product_tags: Option<Option<Vec<String>>>,
#[serde(rename = "productSelections", skip_serializing_if = "Option::is_none")]
pub product_selections: Option<Vec<models::ProductRequestOfferSelection>>,
#[serde(rename = "flexibilities", skip_serializing_if = "Option::is_none")]
pub flexibilities: Option<Vec<String>>,
#[serde(rename = "travelClasses", skip_serializing_if = "Option::is_none")]
pub travel_classes: Option<Vec<String>>,
#[serde(rename = "serviceClassTypes", skip_serializing_if = "Option::is_none")]
pub service_class_types: Option<Vec<String>>,
#[serde(rename = "offerMode", skip_serializing_if = "Option::is_none")]
pub offer_mode: Option<models::OfferMode>,
#[serde(rename = "currency", skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(rename = "inboundDate", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub inbound_date: Option<Option<String>>,
}
impl OfferSearchCriteria {
pub fn new() -> OfferSearchCriteria {
OfferSearchCriteria {
requested_offer_parts: None,
product_tags: None,
product_selections: None,
flexibilities: None,
travel_classes: None,
service_class_types: None,
offer_mode: None,
currency: None,
inbound_date: None,
}
}
}