isbnlib/dto/
work_response.rs1use 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 {}