1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4
5use super::{Episode, ParsedSearchResult, PullState};
6
7fn default_relocate_season() -> bool {
8 true
9}
10
11#[derive(Serialize, Deserialize, Clone)]
12pub struct Series {
13 pub name: String,
14 pub profile: String,
16 pub max_days_old: Option<u64>,
18 pub relocate: Option<String>,
20 #[serde(default = "default_relocate_season")]
22 pub relocate_season: bool,
23}
24
25#[derive(Serialize, Deserialize, Clone)]
26pub struct SeriesStatus {
27 #[serde(flatten)]
28 pub series: Series,
29 pub seasons: BTreeMap<u32, SeasonStatus>,
30}
31
32#[derive(Default, Serialize, Deserialize, Clone)]
33pub struct SeasonStatus {
34 pub episodes: BTreeMap<Episode, EpisodeStatus>,
35}
36
37#[derive(Serialize, Deserialize, Clone)]
38pub struct EpisodeStatus {
39 pub state: PullState,
40 pub source: ParsedSearchResult,
41}