type Card = {
  identifier: string
  path: string
  idx: number | null
}

type Hand = {
  cards: Card[]
}

type Player = {
  id: string
  name: string
  dogLife: boolean
}

type PlayerQueue = {
  currentPlayer: Player | null
  players: Player[]
}

type PodiumPlayer = {
  player: Player
  position: number
  roundsWon: number
  tricksWon: number
}

type Round = {
  trumpSuit: Card
  playersIn: Player[]
  firstRound: boolean
  trickList: Trick[]
}

type Trick = {
  cards: { [player: string]: Card }
  firstCard: Card | null
  winner: Player | null
}

type User = {
  id: string
  username: string
  host: boolean
}

export type { Card, Hand, Player, PlayerQueue, PodiumPlayer, Round, Trick, User }
