from dataclasses import dataclass, field from typing import Any @dataclass(kw_only=True, frozen=True) class TokenResult: access_token: str refresh_token: str | None = None @dataclass(kw_only=True, frozen=True) class ProfileResult: email: str | None = None display_name: str | None = None country: str | None = None product: str | None = None @dataclass(frozen=True) class ArtistItem: id: str data: dict[str, Any] = field(default_factory=dict) @dataclass(frozen=True) class TopArtistsResult: items: list[ArtistItem] = field(default_factory=list) @dataclass(frozen=True) class RecentlyPlayedItem: track_id: str played_at: str data: dict[str, Any] = field(default_factory=dict) @dataclass(frozen=True) class RecentlyPlayedResult: items: list[RecentlyPlayedItem] = field(default_factory=list) @dataclass(frozen=True) class TrackItem: id: str data: dict[str, Any] = field(default_factory=dict) @dataclass(frozen=True) class TopTracksResult: items: list[TrackItem] = field(default_factory=list) @dataclass(frozen=True) class PlaylistItem: id: str data: dict[str, Any] = field(default_factory=dict) @dataclass(frozen=True) class PlaylistsResult: items: list[PlaylistItem] = field(default_factory=list) @dataclass(frozen=True) class SavedAlbumItem: added_at: str album_id: str data: dict[str, Any] = field(default_factory=dict) @dataclass(frozen=True) class SavedAlbumsResult: items: list[SavedAlbumItem] = field(default_factory=list) @dataclass(frozen=True) class SavedTrackItem: added_at: str track_id: str data: dict[str, Any] = field(default_factory=dict) @dataclass(frozen=True) class SavedTracksResult: items: list[SavedTrackItem] = field(default_factory=list) @dataclass(frozen=True) class FollowedArtistsResult: items: list[ArtistItem] = field(default_factory=list)