use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct EpisodeResource {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<i32>,
#[serde(rename = "seriesId", skip_serializing_if = "Option::is_none")]
pub series_id: Option<i32>,
#[serde(rename = "tvdbId", skip_serializing_if = "Option::is_none")]
pub tvdb_id: Option<i32>,
#[serde(rename = "episodeFileId", skip_serializing_if = "Option::is_none")]
pub episode_file_id: Option<i32>,
#[serde(rename = "seasonNumber", skip_serializing_if = "Option::is_none")]
pub season_number: Option<i32>,
#[serde(rename = "episodeNumber", skip_serializing_if = "Option::is_none")]
pub episode_number: Option<i32>,
#[serde(rename = "title", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub title: Option<Option<String>>,
#[serde(rename = "airDate", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub air_date: Option<Option<String>>,
#[serde(rename = "airDateUtc", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub air_date_utc: Option<Option<String>>,
#[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
pub runtime: Option<i32>,
#[serde(rename = "finaleType", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub finale_type: Option<Option<String>>,
#[serde(rename = "overview", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub overview: Option<Option<String>>,
#[serde(rename = "episodeFile", skip_serializing_if = "Option::is_none")]
pub episode_file: Option<Box<models::EpisodeFileResource>>,
#[serde(rename = "hasFile", skip_serializing_if = "Option::is_none")]
pub has_file: Option<bool>,
#[serde(rename = "monitored", skip_serializing_if = "Option::is_none")]
pub monitored: Option<bool>,
#[serde(rename = "absoluteEpisodeNumber", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub absolute_episode_number: Option<Option<i32>>,
#[serde(rename = "sceneAbsoluteEpisodeNumber", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub scene_absolute_episode_number: Option<Option<i32>>,
#[serde(rename = "sceneEpisodeNumber", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub scene_episode_number: Option<Option<i32>>,
#[serde(rename = "sceneSeasonNumber", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub scene_season_number: Option<Option<i32>>,
#[serde(rename = "unverifiedSceneNumbering", skip_serializing_if = "Option::is_none")]
pub unverified_scene_numbering: Option<bool>,
#[serde(rename = "endTime", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub end_time: Option<Option<String>>,
#[serde(rename = "grabDate", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub grab_date: Option<Option<String>>,
#[serde(rename = "series", skip_serializing_if = "Option::is_none")]
pub series: Option<Box<models::SeriesResource>>,
#[serde(rename = "images", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub images: Option<Option<Vec<models::MediaCover>>>,
}
impl EpisodeResource {
pub fn new() -> EpisodeResource {
EpisodeResource {
id: None,
series_id: None,
tvdb_id: None,
episode_file_id: None,
season_number: None,
episode_number: None,
title: None,
air_date: None,
air_date_utc: None,
runtime: None,
finale_type: None,
overview: None,
episode_file: None,
has_file: None,
monitored: None,
absolute_episode_number: None,
scene_absolute_episode_number: None,
scene_episode_number: None,
scene_season_number: None,
unverified_scene_numbering: None,
end_time: None,
grab_date: None,
series: None,
images: None,
}
}
}