70
resources/client/titles/models/title.ts
Executable file
70
resources/client/titles/models/title.ts
Executable file
@@ -0,0 +1,70 @@
|
||||
import {Video} from './video';
|
||||
import {TitleImage} from './title-image';
|
||||
import {Episode} from './episode';
|
||||
import {Season} from './season';
|
||||
import {Review} from './review';
|
||||
import {Genre} from '@app/titles/models/genre';
|
||||
import {Keyword} from '@app/titles/models/keyword';
|
||||
import {ProductionCountry} from '@app/titles/models/production-country';
|
||||
import {Person} from '@app/titles/models/person';
|
||||
|
||||
export interface EpisodeCredit extends Episode {
|
||||
pivot: TitleCreditPivot;
|
||||
}
|
||||
|
||||
export interface TitleCredit extends Person {
|
||||
pivot: TitleCreditPivot;
|
||||
}
|
||||
|
||||
export interface PersonCredit extends Title {
|
||||
credited_episode_count?: number;
|
||||
episodes: EpisodeCredit[];
|
||||
pivot: TitleCreditPivot;
|
||||
}
|
||||
|
||||
export interface TitleCreditPivot {
|
||||
id: number;
|
||||
job: string;
|
||||
department: 'directing' | 'writing' | 'actors' | 'creators';
|
||||
character: string;
|
||||
}
|
||||
|
||||
export const TITLE_MODEL = 'title';
|
||||
export const MOVIE_MODEL = 'movie';
|
||||
export const SERIES_MODEL = 'series';
|
||||
|
||||
export interface Title {
|
||||
id: number;
|
||||
name: string;
|
||||
original_title: string;
|
||||
model_type: typeof TITLE_MODEL;
|
||||
is_series: boolean;
|
||||
status: 'released' | 'upcoming' | 'ongoing' | 'ended';
|
||||
description: string;
|
||||
tagline: string;
|
||||
runtime: number;
|
||||
rating: number;
|
||||
budget: number;
|
||||
poster?: string;
|
||||
backdrop: string;
|
||||
revenue: number;
|
||||
views: number;
|
||||
popularity: number;
|
||||
seasons_count: number;
|
||||
release_date: string;
|
||||
year: number;
|
||||
genres: Genre[];
|
||||
keywords: Keyword[];
|
||||
production_countries: ProductionCountry[];
|
||||
videos: Video[];
|
||||
all_videos?: Video[];
|
||||
primary_video: Video;
|
||||
primary_video_count?: number;
|
||||
certification?: string;
|
||||
images: TitleImage[];
|
||||
season?: Season;
|
||||
seasons?: Season[];
|
||||
reviews?: Review[];
|
||||
language: string;
|
||||
updated_at?: string;
|
||||
}
|
||||
Reference in New Issue
Block a user