librarylib/dto/
work_response.rs

1use 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}