isbnlib/dto/
edition_response.rs

1use crate::dto::author_response::AuthorResponse;
2use crate::dto::work_response::WorkResponse;
3use common::entity::DtoResp;
4use serde::{Deserialize, Serialize};
5use uuid::Uuid;
6
7#[derive(Serialize, Deserialize, Debug, Clone)]
8#[serde(rename_all = "camelCase")]
9pub struct EditionResponse {
10    pub id: Uuid,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub title: Option<String>,
13    #[serde(skip_serializing_if = "Option::is_none")]
14    pub title_prefix: Option<String>,
15    #[serde(skip_serializing_if = "Option::is_none")]
16    pub subtitle: Option<String>,
17    #[serde(skip_serializing_if = "Option::is_none")]
18    pub other_titles: Option<Vec<String>>,
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub authors_key: Option<Vec<String>>,
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub by_statement: Option<String>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub publish_date: Option<String>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub copyright_date: Option<String>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub edition_name: Option<String>,
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub languages: Option<Vec<String>>,
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub description: Option<String>,
33    #[serde(skip_serializing_if = "Option::is_none")]
34    pub notes: Option<String>,
35    #[serde(skip_serializing_if = "Option::is_none")]
36    pub genres: Option<Vec<String>>,
37    #[serde(skip_serializing_if = "Option::is_none")]
38    pub table_of_contents: Option<Vec<serde_json::Value>>,
39    #[serde(skip_serializing_if = "Option::is_none")]
40    pub work_titles: Option<Vec<String>>,
41    #[serde(skip_serializing_if = "Option::is_none")]
42    pub series: Option<Vec<String>>,
43    #[serde(skip_serializing_if = "Option::is_none")]
44    pub physical_dimensions: Option<String>,
45    #[serde(skip_serializing_if = "Option::is_none")]
46    pub physical_format: Option<String>,
47    #[serde(skip_serializing_if = "Option::is_none")]
48    pub number_of_pages: Option<i32>,
49    #[serde(skip_serializing_if = "Option::is_none")]
50    pub subjects: Option<Vec<String>>,
51    #[serde(skip_serializing_if = "Option::is_none")]
52    pub pagination: Option<String>,
53    #[serde(skip_serializing_if = "Option::is_none")]
54    pub lccn: Option<Vec<String>>,
55    #[serde(skip_serializing_if = "Option::is_none")]
56    pub ocaid: Option<String>,
57    #[serde(skip_serializing_if = "Option::is_none")]
58    pub oclc_numbers: Option<Vec<String>>,
59    #[serde(skip_serializing_if = "Option::is_none")]
60    pub isbn_10: Option<Vec<String>>,
61    #[serde(skip_serializing_if = "Option::is_none")]
62    pub isbn_13: Option<Vec<String>>,
63    #[serde(skip_serializing_if = "Option::is_none")]
64    pub dewey_decimal_class: Option<Vec<String>>,
65    #[serde(skip_serializing_if = "Option::is_none")]
66    pub lc_classifications: Option<Vec<String>>,
67    #[serde(skip_serializing_if = "Option::is_none")]
68    pub contributions: Option<Vec<String>>,
69    #[serde(skip_serializing_if = "Option::is_none")]
70    pub publish_places: Option<Vec<String>>,
71    #[serde(skip_serializing_if = "Option::is_none")]
72    pub publish_country: Option<String>,
73    #[serde(skip_serializing_if = "Option::is_none")]
74    pub publishers: Option<Vec<String>>,
75    #[serde(skip_serializing_if = "Option::is_none")]
76    pub distributors: Option<Vec<String>>,
77    #[serde(skip_serializing_if = "Option::is_none")]
78    pub first_sentence: Option<String>,
79    #[serde(skip_serializing_if = "Option::is_none")]
80    pub weight: Option<String>,
81    #[serde(skip_serializing_if = "Option::is_none")]
82    pub location: Option<Vec<String>>,
83    #[serde(skip_serializing_if = "Option::is_none")]
84    pub scan_on_demand: Option<bool>,
85    #[serde(skip_serializing_if = "Option::is_none")]
86    pub collections: Option<Vec<String>>,
87    #[serde(skip_serializing_if = "Option::is_none")]
88    pub uris: Option<Vec<String>>,
89    #[serde(skip_serializing_if = "Option::is_none")]
90    pub uri_descriptions: Option<Vec<String>>,
91    #[serde(skip_serializing_if = "Option::is_none")]
92    pub translation_of: Option<String>,
93    #[serde(skip_serializing_if = "Option::is_none")]
94    pub works_key: Option<Vec<String>>,
95    #[serde(skip_serializing_if = "Option::is_none")]
96    pub source_records: Option<Vec<String>>,
97    #[serde(skip_serializing_if = "Option::is_none")]
98    pub translated_from: Option<Vec<String>>,
99    #[serde(skip_serializing_if = "Option::is_none")]
100    pub scan_records: Option<Vec<String>>,
101    #[serde(skip_serializing_if = "Option::is_none")]
102    pub volumes: Option<Vec<serde_json::Value>>,
103    #[serde(skip_serializing_if = "Option::is_none")]
104    pub accompanying_material: Option<String>,
105    #[serde(skip_serializing_if = "Option::is_none")]
106    pub works: Option<Vec<Uuid>>,
107    #[serde(skip_serializing_if = "Option::is_none")]
108    pub authors: Option<Vec<Uuid>>,
109    #[serde(skip_serializing_if = "Option::is_none")]
110    pub revision: Option<i32>,
111    #[serde(skip_serializing_if = "Option::is_none")]
112    pub author_data: Option<Vec<AuthorResponse>>,
113    #[serde(skip_serializing_if = "Option::is_none")]
114    pub work_data: Option<Vec<WorkResponse>>,
115    #[serde(skip_serializing_if = "Option::is_none")]
116    pub key: Option<String>
117}
118
119impl DtoResp for EditionResponse {}