// types.ts export interface Box { id: string type: 'playlist' | 'compilation' name: string duration: number tracks?: Track[] description: string color2: string color1: string color3: string state: BoxState } export interface Artist { id: number name: string url: string coverId: string } export interface Track { id: number order?: number boxId: string title: string artist?: Artist | number | string start?: number url: string coverId?: string date?: Date card?: { suit: CardSuit; rank: CardRank } link?: string type: 'playlist' | 'compilation' } export interface Playlist { id: number date: Date title: string url: string filename: string } export type BoxState = 'box-hidden' | 'box-list' | 'box-selected' export type CardSuit = '♠' | '♣' | '♦' | '♥' export type CardRank = 'A' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | 'J' | 'Q' | 'K'