You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
overseerr/server/api/musicbrainz/interfaces.ts

106 lines
2.0 KiB

// Purpose: Interfaces for MusicBrainz data.
export enum mbArtistType {
PERSON = 'Person',
GROUP = 'Group',
ORCHESTRA = 'Orchestra',
CHOIR = 'Choir',
CHARACTER = 'Character',
OTHER = 'Other',
};
export interface mbArtist {
id: string;
name: string;
sortName: string;
type: mbArtistType;
recordings?: mbRecording[];
releases?: mbRelease[];
releaseGroups?: mbReleaseGroup[];
works?: mbWork[];
gender?: string;
area?: string;
beginDate?: string;
endDate?: string;
tags: string[];
};
export interface mbRecording {
id: string;
title: string;
artist: mbArtist[];
length: number;
firstReleased?: Date;
tags: string[];
};
export interface mbRelease {
id: string;
title: string;
artist: mbArtist[];
date?: Date;
tracks?: mbRecording[];
tags: string[];
};
export enum mbReleaseGroupType {
ALBUM = 'Album',
SINGLE = 'Single',
EP = 'EP',
BROADCAST = 'Broadcast',
OTHER = 'Other',
};
export interface mbReleaseGroup {
id: string;
title: string;
artist: mbArtist[];
type: mbReleaseGroupType;
firstReleased?: Date;
releases?: mbRelease[];
tags: string[];
};
export enum mbWorkType {
ARIA = 'Aria',
BALLET = 'Ballet',
CANTATA = 'Cantata',
CONCERTO = 'Concerto',
SONATA = 'Sonata',
SUITE = 'Suite',
MADRIGAL = 'Madrigal',
MASS = 'Mass',
MOTET = 'Motet',
OPERA = 'Opera',
ORATORIO = 'Oratorio',
OVERTURE = 'Overture',
PARTITA = 'Partita',
QUARTET = 'Quartet',
SONG_CYCLE = 'Song-cycle',
SYMPHONY = 'Symphony',
SONG = 'Song',
SYMPHONIC_POEM = 'Symphonic poem',
ZARZUELA = 'Zarzuela',
ETUDE = 'Étude',
POEM = 'Poem',
SOUNDTRACK = 'Soundtrack',
PROSE = 'Prose',
OPERETTA = 'Operetta',
AUDIO_DRAMA = 'Audio drama',
BEIJING_OPERA = 'Beijing opera',
PLAY = 'Play',
MUSICAL = 'Musical',
INCIDENTAL_MUSIC = 'Incidental music',
OTHER = 'Other',
};
export interface mbWork {
id: string;
title: string;
type: mbWorkType;
artist: mbArtist[];
tags: string[];
};