use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct ProductSearchRequest {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "types", skip_serializing_if = "Option::is_none")]
pub types: Option<Vec<String>>,
#[serde(rename = "codes", skip_serializing_if = "Option::is_none")]
pub codes: Option<Vec<String>>,
#[serde(rename = "flexibilities", skip_serializing_if = "Option::is_none")]
pub flexibilities: Option<Vec<String>>,
#[serde(rename = "serviceClasses", skip_serializing_if = "Option::is_none")]
pub service_classes: Option<Vec<models::ServiceClass>>,
#[serde(rename = "travelClasses", skip_serializing_if = "Option::is_none")]
pub travel_classes: Option<Vec<String>>,
#[serde(rename = "fulfillmentOptions", skip_serializing_if = "Option::is_none")]
pub fulfillment_options: Option<Vec<models::FulfillmentOption>>,
#[serde(rename = "productTags", skip_serializing_if = "Option::is_none")]
pub product_tags: Option<Vec<String>>,
}
impl ProductSearchRequest {
pub fn new() -> ProductSearchRequest {
ProductSearchRequest {
id: None,
types: None,
codes: None,
flexibilities: None,
service_classes: None,
travel_classes: None,
fulfillment_options: None,
product_tags: None,
}
}
}