box_open_sdk/models/schemas/
trashed_files.rs1use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8pub struct TrashFile {
9 pub id: String,
10 #[serde(
11 default,
12 skip_serializing_if = "Option::is_none",
13 deserialize_with = "double_option"
14 )]
15 pub etag: Option<Option<String>>,
16 pub r#type: AiCitationType,
17 pub sequence_id: String,
18 #[serde(default, skip_serializing_if = "Option::is_none")]
19 pub name: Option<String>,
20 pub sha1: String,
21 #[serde(default, skip_serializing_if = "Option::is_none")]
22 pub file_version: Option<FileVersionMini>,
23 pub description: String,
24 pub size: i64,
25 pub path_collection: TrashFilePathCollection,
26 pub created_at: chrono::DateTime<chrono::Utc>,
27 pub modified_at: chrono::DateTime<chrono::Utc>,
28 #[serde(
29 default,
30 skip_serializing_if = "Option::is_none",
31 deserialize_with = "double_option"
32 )]
33 pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
34 #[serde(
35 default,
36 skip_serializing_if = "Option::is_none",
37 deserialize_with = "double_option"
38 )]
39 pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
40 #[serde(
41 default,
42 skip_serializing_if = "Option::is_none",
43 deserialize_with = "double_option"
44 )]
45 pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
46 #[serde(
47 default,
48 skip_serializing_if = "Option::is_none",
49 deserialize_with = "double_option"
50 )]
51 pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
52 #[serde(default, skip_serializing_if = "Option::is_none")]
53 pub created_by: Option<UserMini>,
54 pub modified_by: UserMini,
55 pub owned_by: UserMini,
56 #[serde(
57 default,
58 skip_serializing_if = "Option::is_none",
59 deserialize_with = "double_option"
60 )]
61 pub shared_link: Option<Option<String>>,
62 #[serde(
63 default,
64 skip_serializing_if = "Option::is_none",
65 deserialize_with = "double_option"
66 )]
67 pub parent: Option<Option<FolderMini>>,
68 pub item_status: FileItemStatus,
69}
70
71#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
72pub struct TrashFileRestored {
73 pub id: String,
74 #[serde(
75 default,
76 skip_serializing_if = "Option::is_none",
77 deserialize_with = "double_option"
78 )]
79 pub etag: Option<Option<String>>,
80 pub r#type: AiCitationType,
81 pub sequence_id: String,
82 #[serde(default, skip_serializing_if = "Option::is_none")]
83 pub name: Option<String>,
84 pub sha1: String,
85 #[serde(default, skip_serializing_if = "Option::is_none")]
86 pub file_version: Option<FileVersionMini>,
87 pub description: String,
88 pub size: i64,
89 pub path_collection: FilePathCollection,
90 pub created_at: chrono::DateTime<chrono::Utc>,
91 pub modified_at: chrono::DateTime<chrono::Utc>,
92 #[serde(
93 default,
94 skip_serializing_if = "Option::is_none",
95 deserialize_with = "double_option"
96 )]
97 pub trashed_at: Option<Option<String>>,
98 #[serde(
99 default,
100 skip_serializing_if = "Option::is_none",
101 deserialize_with = "double_option"
102 )]
103 pub purged_at: Option<Option<String>>,
104 #[serde(
105 default,
106 skip_serializing_if = "Option::is_none",
107 deserialize_with = "double_option"
108 )]
109 pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
110 #[serde(
111 default,
112 skip_serializing_if = "Option::is_none",
113 deserialize_with = "double_option"
114 )]
115 pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
116 #[serde(default, skip_serializing_if = "Option::is_none")]
117 pub created_by: Option<UserMini>,
118 pub modified_by: UserMini,
119 pub owned_by: UserMini,
120 #[serde(
121 default,
122 skip_serializing_if = "Option::is_none",
123 deserialize_with = "double_option"
124 )]
125 pub shared_link: Option<Option<String>>,
126 #[serde(
127 default,
128 skip_serializing_if = "Option::is_none",
129 deserialize_with = "double_option"
130 )]
131 pub parent: Option<Option<FolderMini>>,
132 pub item_status: FileItemStatus,
133}