1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct EditionResource {
16 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
17 pub id: Option<i32>,
18 #[serde(rename = "bookId", skip_serializing_if = "Option::is_none")]
19 pub book_id: Option<i32>,
20 #[serde(rename = "foreignEditionId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
21 pub foreign_edition_id: Option<Option<String>>,
22 #[serde(rename = "titleSlug", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
23 pub title_slug: Option<Option<String>>,
24 #[serde(rename = "isbn13", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
25 pub isbn13: Option<Option<String>>,
26 #[serde(rename = "asin", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
27 pub asin: Option<Option<String>>,
28 #[serde(rename = "title", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
29 pub title: Option<Option<String>>,
30 #[serde(rename = "language", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
31 pub language: Option<Option<String>>,
32 #[serde(rename = "overview", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
33 pub overview: Option<Option<String>>,
34 #[serde(rename = "format", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
35 pub format: Option<Option<String>>,
36 #[serde(rename = "isEbook", skip_serializing_if = "Option::is_none")]
37 pub is_ebook: Option<bool>,
38 #[serde(rename = "disambiguation", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
39 pub disambiguation: Option<Option<String>>,
40 #[serde(rename = "publisher", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
41 pub publisher: Option<Option<String>>,
42 #[serde(rename = "pageCount", skip_serializing_if = "Option::is_none")]
43 pub page_count: Option<i32>,
44 #[serde(rename = "releaseDate", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
45 pub release_date: Option<Option<String>>,
46 #[serde(rename = "images", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
47 pub images: Option<Option<Vec<models::MediaCover>>>,
48 #[serde(rename = "links", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
49 pub links: Option<Option<Vec<models::Links>>>,
50 #[serde(rename = "ratings", skip_serializing_if = "Option::is_none")]
51 pub ratings: Option<Box<models::Ratings>>,
52 #[serde(rename = "monitored", skip_serializing_if = "Option::is_none")]
53 pub monitored: Option<bool>,
54 #[serde(rename = "manualAdd", skip_serializing_if = "Option::is_none")]
55 pub manual_add: Option<bool>,
56 #[serde(rename = "remoteCover", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
57 pub remote_cover: Option<Option<String>>,
58}
59
60impl EditionResource {
61 pub fn new() -> EditionResource {
62 EditionResource {
63 id: None,
64 book_id: None,
65 foreign_edition_id: None,
66 title_slug: None,
67 isbn13: None,
68 asin: None,
69 title: None,
70 language: None,
71 overview: None,
72 format: None,
73 is_ebook: None,
74 disambiguation: None,
75 publisher: None,
76 page_count: None,
77 release_date: None,
78 images: None,
79 links: None,
80 ratings: None,
81 monitored: None,
82 manual_add: None,
83 remote_cover: None,
84 }
85 }
86}
87