feat(requests): add media detail page with TMDB metadata

- Add GetMediaDetail TMDB client returning normalized detail with cast, crew, recommendations, and certifications
- Add /api/requests/detail/{media_type}/{tmdb_id} endpoint overlaying availability and request state
- Add RequestDetail page and link poster cards to it
- Treat empty/truncated Radarr/Sonarr POST responses as accepted; drop pre-submit existence lookups
This commit is contained in:
Silo Server Migration
2026-05-24 17:03:29 -04:00
parent 246c9da6ab
commit 5b8aa9f34c
18 changed files with 1246 additions and 101 deletions
+41
View File
@@ -1419,6 +1419,47 @@ export interface RequestMediaPage {
results: RequestMediaResult[];
}
export interface RequestMediaCastMember {
name: string;
character?: string;
profile_path?: string;
order: number;
}
export interface RequestMediaDetail {
media_type: RequestMediaType;
tmdb_id: number;
imdb_id?: string;
tvdb_id?: number;
title: string;
original_title?: string;
tagline?: string;
overview?: string;
poster_path?: string;
backdrop_path?: string;
release_date?: string;
year?: number;
runtime?: number;
genres?: string[];
vote_average?: number;
vote_count?: number;
status?: string;
homepage?: string;
content_rating?: string;
production_companies?: string[];
number_of_seasons?: number;
number_of_episodes?: number;
first_air_date?: string;
last_air_date?: string;
networks?: string[];
cast?: RequestMediaCastMember[];
director?: string;
creators?: string[];
recommendations?: RequestMediaResult[];
availability: RequestAvailability;
request: RequestState;
}
export interface RequestDiscoverySection extends RequestMediaPage {
key: string;
title: string;