// 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'
