Files
mtdb_movie/resources/client/titles/models/title.ts
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

71 lines
1.7 KiB
TypeScript
Executable File

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;
}