isbnlib/dto/
work_response.rs

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