osdm_sys/models/
document.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14use serde_with::serde_as;
15
16#[serde_as]
18#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
19pub struct Document {
20 #[serde(rename = "id")]
21 pub id: String,
22 #[serde(rename = "summary", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
23 pub summary: Option<Option<String>>,
24 #[serde(rename = "passengerRef", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
26 pub passenger_ref: Option<Option<String>>,
27 #[serde(rename = "downloadLink", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
28 pub download_link: Option<Option<String>>,
29 #[serde(rename = "downloadExpiry", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
31 pub download_expiry: Option<Option<String>>,
32 #[serde_as(as = "super::DoubleOption<serde_with::base64::Base64>")]
34 #[serde(rename = "content", default, skip_serializing_if = "Option::is_none")]
35 pub content: Option<Option<Vec<u8>>>,
36 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
37 pub format: Option<models::DocumentFormat>,
38 #[serde(rename = "type")]
39 pub r#type: models::DocumentType,
40 #[serde(rename = "scope")]
41 pub scope: models::DocumentScope,
42}
43
44impl Document {
45 pub fn new(id: String, r#type: models::DocumentType, scope: models::DocumentScope) -> Document {
47 Document {
48 id,
49 summary: None,
50 passenger_ref: None,
51 download_link: None,
52 download_expiry: None,
53 content: None,
54 format: None,
55 r#type,
56 scope,
57 }
58 }
59}
60