28 lines
651 B
Python
28 lines
651 B
Python
#!/usr/bin/python3
|
|
|
|
from dataclasses import dataclass
|
|
from typing import Optional
|
|
from enum import Enum
|
|
|
|
|
|
@dataclass
|
|
class IDs:
|
|
"""IDs used across objects; isrc only required on items supporting it."""
|
|
spotify: Optional[str] = None
|
|
deezer: Optional[str] = None
|
|
isrc: Optional[str] = None
|
|
upc: Optional[str] = None
|
|
|
|
|
|
@dataclass
|
|
class ReleaseDate:
|
|
"""Mandatory release date structure."""
|
|
year: int
|
|
month: Optional[int] = None # null if unknown
|
|
day: Optional[int] = None # null if unknown
|
|
|
|
|
|
class Service(str, Enum):
|
|
"""Supported source services for downloads."""
|
|
SPOTIFY = "spotify"
|
|
DEEZER = "deezer" |