From 06a68372e6c17ad9a6142748e94c4a6c2f619f85 Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Sun, 23 Aug 2026 20:44:28 +0100 Subject: [PATCH] feat(api): expose series and season on episodes --- crates/arr-api/src/series.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/crates/arr-api/src/series.rs b/crates/arr-api/src/series.rs index e474d2c..820d9d8 100644 --- a/crates/arr-api/src/series.rs +++ b/crates/arr-api/src/series.rs @@ -107,7 +107,11 @@ pub struct Season { #[derive(Debug, Clone, Serialize, ToSchema)] pub struct Episode { pub id: i64, + /// The owning series — the episode deck route needs it without walking + /// seasons first. + pub series_id: i64, pub season_id: i64, + pub season_number: i64, pub number: i64, pub title: String, pub air_date: Option, @@ -660,7 +664,9 @@ async fn load_seasons(state: &AppState, series_id: i64) -> Result, A .filter(|episode| episode.season_id == season.id) .map(|episode| Episode { id: episode.id, + series_id, season_id: episode.season_id, + season_number: episode.season_number, number: episode.number, title: episode.title.clone(), air_date: episode.air_date.clone(), @@ -881,7 +887,9 @@ async fn load_episode(state: &AppState, id: i64) -> Result { .ok_or(ApiError::EpisodeNotFound)?; Ok(Episode { id: row.id, + series_id: row.series_id, season_id: row.season_id, + season_number: row.season_number, number: row.number, title: row.title, air_date: row.air_date,