use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ParsedTrackInfo {
#[serde(rename = "title", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub title: Option<Option<String>>,
#[serde(rename = "cleanTitle", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub clean_title: Option<Option<String>>,
#[serde(rename = "authors", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub authors: Option<Option<Vec<String>>>,
#[serde(rename = "authorTitle", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub author_title: Option<Option<String>>,
#[serde(rename = "bookTitle", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub book_title: Option<Option<String>>,
#[serde(rename = "seriesTitle", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub series_title: Option<Option<String>>,
#[serde(rename = "seriesIndex", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub series_index: Option<Option<String>>,
#[serde(rename = "isbn", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub isbn: Option<Option<String>>,
#[serde(rename = "asin", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub asin: Option<Option<String>>,
#[serde(rename = "goodreadsId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub goodreads_id: Option<Option<String>>,
#[serde(rename = "authorMBId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub author_mbid: Option<Option<String>>,
#[serde(rename = "bookMBId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub book_mbid: Option<Option<String>>,
#[serde(rename = "releaseMBId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub release_mbid: Option<Option<String>>,
#[serde(rename = "recordingMBId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub recording_mbid: Option<Option<String>>,
#[serde(rename = "trackMBId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub track_mbid: Option<Option<String>>,
#[serde(rename = "discNumber", skip_serializing_if = "Option::is_none")]
pub disc_number: Option<i32>,
#[serde(rename = "discCount", skip_serializing_if = "Option::is_none")]
pub disc_count: Option<i32>,
#[serde(rename = "country", skip_serializing_if = "Option::is_none")]
pub country: Option<Box<models::IsoCountry>>,
#[serde(rename = "year", skip_serializing_if = "Option::is_none")]
pub year: Option<i32>,
#[serde(rename = "publisher", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub publisher: Option<Option<String>>,
#[serde(rename = "label", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub label: Option<Option<String>>,
#[serde(rename = "source", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub source: Option<Option<String>>,
#[serde(rename = "catalogNumber", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub catalog_number: Option<Option<String>>,
#[serde(rename = "disambiguation", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub disambiguation: Option<Option<String>>,
#[serde(rename = "duration", skip_serializing_if = "Option::is_none")]
pub duration: Option<String>,
#[serde(rename = "quality", skip_serializing_if = "Option::is_none")]
pub quality: Option<Box<models::QualityModel>>,
#[serde(rename = "mediaInfo", skip_serializing_if = "Option::is_none")]
pub media_info: Option<Box<models::MediaInfoModel>>,
#[serde(rename = "trackNumbers", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub track_numbers: Option<Option<Vec<i32>>>,
#[serde(rename = "language", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub language: Option<Option<String>>,
#[serde(rename = "releaseGroup", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub release_group: Option<Option<String>>,
#[serde(rename = "releaseHash", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub release_hash: Option<Option<String>>,
}
impl ParsedTrackInfo {
pub fn new() -> ParsedTrackInfo {
ParsedTrackInfo {
title: None,
clean_title: None,
authors: None,
author_title: None,
book_title: None,
series_title: None,
series_index: None,
isbn: None,
asin: None,
goodreads_id: None,
author_mbid: None,
book_mbid: None,
release_mbid: None,
recording_mbid: None,
track_mbid: None,
disc_number: None,
disc_count: None,
country: None,
year: None,
publisher: None,
label: None,
source: None,
catalog_number: None,
disambiguation: None,
duration: None,
quality: None,
media_info: None,
track_numbers: None,
language: None,
release_group: None,
release_hash: None,
}
}
}