44 lines
1004 B
Python
44 lines
1004 B
Python
"""
|
|
Classes designed to manage playlist
|
|
"""
|
|
from typing import Any, Dict, List, Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from .track import SimplifiedTrack
|
|
from .user import PublicUser
|
|
|
|
|
|
class PlaylistTrack(BaseModel):
|
|
"""
|
|
Track entry as returned by the Playlist API
|
|
|
|
https://developer.spotify.com/documentation/web-api/reference/#object-playlisttrackobject
|
|
"""
|
|
|
|
added_at: str
|
|
added_by: PublicUser
|
|
is_local: bool
|
|
track: Optional[SimplifiedTrack]
|
|
|
|
|
|
class SimplifiedPlaylist(BaseModel):
|
|
"""
|
|
Playlist as returned by the Playlist API
|
|
|
|
https://developer.spotify.com/documentation/web-api/reference/#object-simplifiedplaylistobject
|
|
"""
|
|
|
|
collaborative: bool
|
|
description: Optional[str]
|
|
external_urls: Dict[str, str]
|
|
href: str
|
|
spotify_id: str = Field(alias="id")
|
|
images: List[Dict[str, Any]]
|
|
name: str
|
|
owner: PublicUser
|
|
snapshot_id: str
|
|
tracks: Dict[str, Any]
|
|
spotify_type: str = Field(alias="type")
|
|
uri: str
|