librarylib/dto/
work_response.rs1use serde::{Deserialize, Serialize};
2use uuid::Uuid;
3
4#[derive(Serialize, Deserialize, Debug, Clone)]
5#[serde(rename_all = "camelCase")]
6pub struct WorkResponse {
7 pub id: Uuid,
8 #[serde(skip_serializing_if = "Option::is_none")]
9 pub title: Option<String>,
10 #[serde(skip_serializing_if = "Option::is_none")]
11 pub subtitle: Option<String>,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub authors_list: Option<Vec<String>>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub translated_titles: Option<Vec<serde_json::Value>>,
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub subjects: Option<Vec<String>>,
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub subject_places: Option<Vec<String>>,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub subject_times: Option<Vec<String>>,
22 #[serde(skip_serializing_if = "Option::is_none")]
23 pub subject_people: Option<Vec<String>>,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub description: Option<String>,
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub dewey_number: Option<Vec<String>>,
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub lc_classifications: Option<Vec<String>>,
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub first_sentence: Option<String>,
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub original_languages: Option<Vec<String>>,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub other_titles: Option<Vec<String>>,
36 #[serde(skip_serializing_if = "Option::is_none")]
37 pub first_publish_date: Option<String>,
38 #[serde(skip_serializing_if = "Option::is_none")]
39 pub links: Option<Vec<serde_json::Value>>,
40 #[serde(skip_serializing_if = "Option::is_none")]
41 pub notes: Option<String>,
42 #[serde(skip_serializing_if = "Option::is_none")]
43 pub cover_edition: Option<String>,
44 #[serde(skip_serializing_if = "Option::is_none")]
45 pub covers: Option<Vec<i32>>,
46 #[serde(skip_serializing_if = "Option::is_none")]
47 pub key: Option<String>,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub authors: Option<Vec<Uuid>>,
50 #[serde(skip_serializing_if = "Option::is_none")]
51 pub revision: Option<i32>
52}