"""Track and Artist domain entities.""" import datetime as dt import uuid from dataclasses import dataclass @dataclass(frozen=True, slots=True) class Artist: id: uuid.UUID name: str source: str | None source_id: str | None created_at: dt.datetime updated_at: dt.datetime @dataclass(frozen=True, slots=True) class Track: id: uuid.UUID title: str artist_id: uuid.UUID album_id: uuid.UUID | None storage_uri: str | None file_format: str | None file_size: int | None source: str source_id: str duration_seconds: int | None genre: str | None year: int | None track_number: int | None metadata_status: str metadata_error: str | None enriched_at: dt.datetime | None availability: str created_at: dt.datetime updated_at: dt.datetime