from datetime import datetime from typing import Optional from pydantic import ConfigDict from sqlmodel import Field, SQLModel class SynchronizationTrack(SQLModel, table=True): """Maps to tblPlaylistSynchronizationTrack. A local ISRC → platform-specific track ID cache used by DeezerSynchronizer to avoid repeated API lookups. Mappings older than 7 days are ignored and refreshed on the next sync (exception: certain large static playlists). """ __tablename__ = "tblPlaylistSynchronizationTrack" model_config = ConfigDict(populate_by_name=True) # type: ignore[assignment] id: Optional[int] = Field(default=None, primary_key=True) isrc: str = Field(alias="isrc", sa_column_kwargs={"name": "Isrc"}) service_type: int = Field( alias="serviceType", sa_column_kwargs={"name": "ServiceType"} ) # ServiceType enum track_id: str = Field( alias="trackId", sa_column_kwargs={"name": "TrackId"} ) # platform-specific track ID (e.g. Deezer track ID) match_date: datetime = Field( default_factory=datetime.utcnow, alias="matchDate", sa_column_kwargs={"name": "MatchDate"}, ) source: int = Field(default=0, alias="source", sa_column_kwargs={"name": "Source"})