Files
iptvnator/libs/shared/interfaces/src/lib/stalker-vod-details.interface.ts
T
4grayandClaude Opus 5.5 294d630156 fix(stalker): keep TMDB genre and country chips on Stalker series (#1930)
The series view re-normalizes the selected item through
createStalkerInfo() on every render, and that mapping carried only seven
hand-picked tmdb_* fields. tmdb_genres, tmdb_countries, tmdb_media_type
and tmdb_supplied_release_date were dropped right after enrichment, so
the clickable Discover chips never appeared on Stalker series.

The carried keys now come from a Record over StalkerVodInfo's tmdb_*
keys, so a new enrichment field fails to compile until it is listed.

Saved Stalker entries now also keep tmdb_supplied_release_date, and the
recommendations exclusion index (trustedReleaseYear) skips a date TMDB
supplied, as the flag's contract requires.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:51:46 +02:00

70 lines
2.4 KiB
TypeScript

import {
TmdbCountryFacet,
TmdbEnrichedCastMember,
TmdbGenreFacet,
TmdbMediaType,
TmdbRecommendation,
TmdbSeriesStatus,
} from './tmdb.interface';
/**
* Stalker portal VOD details response structure.
* Contains movie metadata from Stalker/Ministra portals.
*/
export interface StalkerVodDetails {
/** Unique identifier for the VOD item */
id: string;
/** Command string used to play the stream (e.g., "/media/file_123.mpg") */
cmd: string;
/** VOD metadata */
info: StalkerVodInfo;
}
export interface StalkerVodInfo {
/** Poster/cover image URL */
movie_image: string;
/** Plot description */
description: string;
/** Formatted/system title (often generic like "video_name_format") */
name: string;
/** Original title (preferred, more descriptive) */
o_name?: string;
/** Comma-separated list of actors */
actors: string;
/** Director name */
director: string;
/** Release date (format varies) */
releasedate: string;
/** Genre(s) */
genre: string;
/** IMDB rating as string */
rating_imdb: string;
/** Kinopoisk rating as string */
rating_kinopoisk: string;
/** Populated by TMDB enrichment; absent in raw portal responses */
tmdb_cast?: TmdbEnrichedCastMember[];
/** Directors (movies) / creators (series) as clickable person chips */
tmdb_directors?: TmdbEnrichedCastMember[];
/** Series production status (token, never a raw TMDB string) */
tmdb_status?: TmdbSeriesStatus;
/** TMDB backdrop URL — Stalker portals never provide one themselves */
tmdb_backdrop?: string;
/** YouTube trailer key from TMDB — Stalker portals provide no trailers */
tmdb_trailer?: string;
/** Populated by TMDB enrichment */
tmdb_recommendations?: TmdbRecommendation[];
/** Matched TMDB id — enables lazy season/episode enrichment */
tmdb_id?: number;
/** Populated by TMDB enrichment; per-entry clickable Discover chips */
tmdb_genres?: TmdbGenreFacet[];
tmdb_countries?: TmdbCountryFacet[];
/**
* Media type the enrichment matched this item as. Stalker embedded-VOD
* series route as movies structurally, so the shared detail view needs
* this to send Discover clicks to the right media type.
*/
tmdb_media_type?: TmdbMediaType;
/** See `XtreamVodInfo.tmdb_supplied_release_date` — same contract */
tmdb_supplied_release_date?: boolean;
}