Files
tmdb-ts/src/types/people.ts
2024-06-09 16:54:18 -04:00

152 lines
2.8 KiB
TypeScript

import { CountryCode, Image, Movie, Person, TV } from '.';
interface Cast {
character: string;
credit_id: string;
vote_count: number;
id: number;
backdrop_path: string;
poster_path: string;
original_language: string;
vote_average: number;
genre_ids: number[];
popularity: number;
overview: string;
}
interface Crew {
id: number;
department: string;
original_language: string;
credit_id: string;
overview: string;
vote_count: number;
poster_path: string;
backdrop_path: string;
popularity: number;
genre_ids: number[];
job: string;
vote_average: number;
}
export interface PersonMovieCast extends Cast {
release_date: string;
video: boolean;
adult: boolean;
title: string;
original_title: string;
}
export interface PersonMovieCrew extends Crew {
original_title: string;
video: boolean;
title: string;
adult: boolean;
release_date: string;
}
export interface PersonTvShowCrew extends Crew {
episode_count: number;
origin_country: string[];
original_name: string;
name: string;
first_air_date: string;
}
export interface PersonTvShowCast extends Cast {
original_name: string;
name: string;
episode_count: number;
first_air_date: string;
origin_country: string[];
}
export interface PersonMovieCredit {
cast: PersonMovieCast[];
crew: PersonMovieCrew[];
id: number;
}
export interface PersonTvShowCredit {
cast: PersonTvShowCast[];
crew: PersonTvShowCrew[];
id: number;
}
export interface PersonCombinedCredits {
cast: (PersonMovieCast & PersonTvShowCast)[];
crew: (PersonMovieCrew & PersonTvShowCrew)[];
id: number;
}
export interface PersonDetails {
birthday: string;
known_for_department: string;
deathday: string;
id: number;
name: string;
also_known_as: string[];
gender: number;
biography: string;
popularity: number;
place_of_birth: string;
profile_path: string;
adult: boolean;
imdb_id: string;
homepage: string;
}
export type PersonChangeValue =
| string
| {
profile: {
file_path: string;
};
};
export interface PopularPeople {
page: number;
results: Person[];
total_results: number;
total_pages: number;
}
export interface PeopleImages {
id: number;
profiles: Image[];
}
export interface TaggedImage {
aspect_ratio: number;
file_path: string;
height: number;
id: string;
iso_639_1: string;
vote_average: number;
vote_count: number;
width: number;
image_type: string;
media_type: string;
media: Movie | TV;
}
export interface TaggedImages {
page: number;
results: TaggedImage[];
total_results: number;
total_pages: number;
}
export interface PersonTranslations {
id: number;
translations: {
iso_3166_1: CountryCode;
iso_639_1: string;
name: string;
english_name: string;
data: {
biography: string;
};
};
}