54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
export type MediaCategory = 'Anime' | 'Movies' | 'TV Series' | 'Music' | 'Books' | 'Adult' | 'Consoles' | 'Games';
|
|
|
|
export interface Media {
|
|
id: string;
|
|
title: string;
|
|
year: string;
|
|
poster: string;
|
|
category: MediaCategory;
|
|
aspectRatio?: '2/3' | '16/9' | '1/1';
|
|
type?: 'TV' | 'Movie' | 'OVA' | 'ONA' | 'Album' | 'Single' | 'Hardcover' | 'E-book' | 'Console' | 'Game';
|
|
banner?: string;
|
|
description?: string;
|
|
rating?: number;
|
|
genres?: string[];
|
|
tags?: string[];
|
|
studios?: string[];
|
|
status?: 'watching' | 'completed' | 'planned' | 'dropped' | 'reading' | 'listening' | 'playing' | 'on-hold';
|
|
episodes?: Episode[];
|
|
staff?: Staff[];
|
|
categories?: string[];
|
|
platforms?: string[];
|
|
developers?: string[];
|
|
completionStatus?: string;
|
|
source?: string;
|
|
playCount?: number;
|
|
lastActivity?: string | null;
|
|
playtime?: number;
|
|
}
|
|
|
|
export interface Episode {
|
|
id: string;
|
|
number: number;
|
|
title: string;
|
|
date: string;
|
|
duration: string;
|
|
description: string;
|
|
thumbnail: string;
|
|
}
|
|
|
|
export interface Staff {
|
|
id: string;
|
|
name: string;
|
|
role: string;
|
|
photo: string;
|
|
characterName: string;
|
|
characterImage: string;
|
|
mediaId?: string;
|
|
mediaTitle?: string;
|
|
bio?: string;
|
|
birthDate?: string;
|
|
birthPlace?: string;
|
|
occupations?: string[];
|
|
}
|