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