use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct FulfillmentPart {
#[serde(rename = "fulfillmentMedia", skip_serializing_if = "Option::is_none")]
pub fulfillment_media: Option<Vec<String>>,
#[serde(rename = "passengerRef", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub passenger_ref: Option<Option<String>>,
#[serde(rename = "controlId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub control_id: Option<Option<String>>,
#[serde(rename = "securityFeatures", skip_serializing_if = "Option::is_none")]
pub security_features: Option<Vec<models::FulfillmentItemSecurityFeature>>,
#[serde(rename = "securityFeatureLinks", skip_serializing_if = "Option::is_none")]
pub security_feature_links: Option<Vec<models::FulfillmentItemSecurityFeatureLinks>>,
#[serde(rename = "fulfillmentInformationTexts", skip_serializing_if = "Option::is_none")]
pub fulfillment_information_texts: Option<Vec<models::TextElement>>,
#[serde(rename = "isMandatory", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub is_mandatory: Option<Option<bool>>,
#[serde(rename = "securePaperOnly", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub secure_paper_only: Option<Option<bool>>,
}
impl FulfillmentPart {
pub fn new() -> FulfillmentPart {
FulfillmentPart {
fulfillment_media: None,
passenger_ref: None,
control_id: None,
security_features: None,
security_feature_links: None,
fulfillment_information_texts: None,
is_mandatory: None,
secure_paper_only: None,
}
}
}