from dataclasses import dataclass
from typing import Literal


@dataclass(frozen=True)
class Category:
    name: str
    url: str
    kind: Literal["forum", "rank"]


@dataclass(frozen=True)
class Track:
    title: str
    url: str
    category: str | None = None
    comments: int | None = None


@dataclass(frozen=True)
class ResolvedTrack:
    title: str
    artist: str
    url: str
    cover: str | None = None
    album: str | None = None
    lyrics: str | None = None