158 lines
3.0 KiB
TypeScript
158 lines
3.0 KiB
TypeScript
export enum MediaTypes {
|
|
Movie = "movie",
|
|
Show = "show",
|
|
Person = "person"
|
|
}
|
|
|
|
export enum RequestTypes {
|
|
Requested = "requested"
|
|
}
|
|
|
|
export enum MovieGenres {
|
|
Action = "Action",
|
|
Adventure = "Adventure",
|
|
Animation = "Animation",
|
|
Comedy = "Comedy",
|
|
Crime = "Crime",
|
|
Documentary = "Documentary",
|
|
Drama = "Drama",
|
|
Family = "Family",
|
|
Fantasy = "Fantasy",
|
|
History = "History",
|
|
Horror = "Horror",
|
|
Music = "Music",
|
|
Mystery = "Mystery",
|
|
Romance = "Romance",
|
|
Science_Fiction = "Science Fiction",
|
|
TV_Movie = "TV Movie",
|
|
Thriller = "Thriller",
|
|
War = "War",
|
|
Western = "Western"
|
|
}
|
|
|
|
export enum MovieProductionStatus {
|
|
Rumored = "Rumored",
|
|
Planned = "Planned",
|
|
In_Production = "In Production",
|
|
Post_Production = "Post Production",
|
|
Released = "Released",
|
|
Canceled = "Canceled"
|
|
}
|
|
|
|
export enum ShowGenres {
|
|
Action_Adventure = "Action & Adventure",
|
|
Animation = "Animation",
|
|
Comedy = "Comedy",
|
|
Crime = "Crime",
|
|
Documentary = "Documentary",
|
|
Drama = "Drama",
|
|
Family = "Family",
|
|
Kids = "Kids",
|
|
Mystery = "Mystery",
|
|
News = "News",
|
|
Reality = "Reality",
|
|
SciFi_Fantasy = "Sci-Fi & Fantasy",
|
|
Soap = "Soap",
|
|
Talk = "Talk",
|
|
War_Politics = "War & Politics",
|
|
Western = "Western"
|
|
}
|
|
|
|
export interface IMovie {
|
|
id: number;
|
|
title: string;
|
|
year: number;
|
|
overview: string;
|
|
poster: string;
|
|
backdrop: string;
|
|
release_date: string | Date;
|
|
rating: number;
|
|
genres: Array<MovieGenres>;
|
|
production_status: MovieProductionStatus;
|
|
tagline: string;
|
|
runtime: number;
|
|
popularity?: number;
|
|
imdb_db: string;
|
|
exists_in_plex?: boolean;
|
|
type: MediaTypes.Movie;
|
|
}
|
|
|
|
export interface IShow {
|
|
id: number;
|
|
title: string;
|
|
year: number;
|
|
overview: string;
|
|
tagline?: string;
|
|
poster: string;
|
|
backdrop: string;
|
|
seasons?: number;
|
|
episodes?: number;
|
|
popularity?: number;
|
|
genres?: Array<ShowGenres>;
|
|
production_status?: string;
|
|
runtime?: Array<number>;
|
|
exists_in_plex?: boolean;
|
|
type: MediaTypes.Show;
|
|
}
|
|
|
|
export interface IPerson {
|
|
id: number;
|
|
name: string;
|
|
poster: string;
|
|
birthday: string | null;
|
|
deathday: string | null;
|
|
place_of_birth?: string;
|
|
biography?: string;
|
|
known_for_department: string;
|
|
adult: boolean;
|
|
type: MediaTypes.Person;
|
|
}
|
|
|
|
export interface IRequest extends IMovie {
|
|
requested_by: string;
|
|
ip: string;
|
|
status: string | RequestTypes;
|
|
user_agent: string;
|
|
}
|
|
|
|
export interface ICast {
|
|
character: string;
|
|
gender: number;
|
|
id: number;
|
|
name: string;
|
|
profile_path: string | null;
|
|
type: string;
|
|
}
|
|
|
|
export interface ICrew {
|
|
department: string;
|
|
gender: number;
|
|
id: number;
|
|
job: string;
|
|
name: string;
|
|
profile_path: string | null;
|
|
type: string;
|
|
}
|
|
|
|
export interface IMediaCredits {
|
|
cast: Array<ICast>;
|
|
crew: Array<ICrew>;
|
|
id: number;
|
|
}
|
|
|
|
export interface IPersonCredits {
|
|
cast: Array<IMovie | IShow>;
|
|
crew: Array<ICrew>;
|
|
id: number;
|
|
type?: string;
|
|
}
|
|
|
|
export type ListResults = Array<IMovie | IShow | IPerson | IRequest>;
|
|
|
|
export interface IList {
|
|
results: ListResults;
|
|
page: number;
|
|
total_results: number;
|
|
total_pages: number;
|
|
}
|