osdm_sys/models/
passenger.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 Passenger {
18 #[serde(rename = "id")]
19 pub id: String,
20 #[serde(rename = "summary", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
22 pub summary: Option<Option<String>>,
23 #[serde(rename = "externalRef")]
25 pub external_ref: String,
26 #[serde(rename = "dateOfBirth", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
28 pub date_of_birth: Option<Option<String>>,
29 #[serde(rename = "age", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
30 pub age: Option<Option<i32>>,
31 #[serde(rename = "type")]
33 pub r#type: String,
34 #[serde(rename = "cards", skip_serializing_if = "Option::is_none")]
36 pub cards: Option<Vec<models::CardReference>>,
37 #[serde(rename = "gender", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
38 pub gender: Option<Option<models::Gender>>,
39 #[serde(rename = "detail", skip_serializing_if = "Option::is_none")]
40 pub detail: Option<Box<models::PersonDetail>>,
41 #[serde(rename = "identificationCard", skip_serializing_if = "Option::is_none")]
42 pub identification_card: Option<Box<models::IdentificationCard>>,
43 #[serde(rename = "transportableDetails", skip_serializing_if = "Option::is_none")]
44 pub transportable_details: Option<Box<models::Transportable>>,
45 #[serde(rename = "prmNeeds", skip_serializing_if = "Option::is_none")]
47 pub prm_needs: Option<Vec<String>>,
48 #[serde(rename = "_links", skip_serializing_if = "Option::is_none")]
50 pub _links: Option<Vec<models::Link>>,
51}
52
53impl Passenger {
54 pub fn new(id: String, external_ref: String, r#type: String) -> Passenger {
56 Passenger {
57 id,
58 summary: None,
59 external_ref,
60 date_of_birth: None,
61 age: None,
62 r#type,
63 cards: None,
64 gender: None,
65 detail: None,
66 identification_card: None,
67 transportable_details: None,
68 prm_needs: None,
69 _links: None,
70 }
71 }
72}
73