osdm_sys/models/
product_search_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 ProductSearchRequest {
18 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
20 pub id: Option<String>,
21 #[serde(rename = "types", skip_serializing_if = "Option::is_none")]
22 pub types: Option<Vec<String>>,
23 #[serde(rename = "codes", skip_serializing_if = "Option::is_none")]
25 pub codes: Option<Vec<String>>,
26 #[serde(rename = "flexibilities", skip_serializing_if = "Option::is_none")]
27 pub flexibilities: Option<Vec<String>>,
28 #[serde(rename = "serviceClasses", skip_serializing_if = "Option::is_none")]
29 pub service_classes: Option<Vec<models::ServiceClass>>,
30 #[serde(rename = "travelClasses", skip_serializing_if = "Option::is_none")]
31 pub travel_classes: Option<Vec<String>>,
32 #[serde(rename = "fulfillmentOptions", skip_serializing_if = "Option::is_none")]
33 pub fulfillment_options: Option<Vec<models::FulfillmentOption>>,
34 #[serde(rename = "productTags", skip_serializing_if = "Option::is_none")]
36 pub product_tags: Option<Vec<String>>,
37}
38
39impl ProductSearchRequest {
40 pub fn new() -> ProductSearchRequest {
42 ProductSearchRequest {
43 id: None,
44 types: None,
45 codes: None,
46 flexibilities: None,
47 service_classes: None,
48 travel_classes: None,
49 fulfillment_options: None,
50 product_tags: None,
51 }
52 }
53}
54