29 lines
605 B
Python
29 lines
605 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from datetime import datetime
|
|
|
|
|
|
@dataclass
|
|
class TrackCandidate:
|
|
id: str
|
|
uri: str
|
|
name: str
|
|
artist_names: list[str]
|
|
artist_ids: list[str]
|
|
popularity: int | None = None
|
|
source: str = "unknown"
|
|
score: float = 0.0
|
|
seed_reasons: list[str] = field(default_factory=list)
|
|
added_at: datetime | None = None
|
|
|
|
|
|
@dataclass
|
|
class PlaylistBuildResult:
|
|
tracks: list[TrackCandidate]
|
|
target_size: int
|
|
new_count: int
|
|
reused_count: int
|
|
min_new_required: int
|
|
notes: str | None = None
|