from datetime import datetime from pydantic import BaseModel class RecommendationRequest(BaseModel): playlist_id: int | None = None query: str | None = None # Manual search/request class RecommendationItem(BaseModel): id: int title: str artist: str album: str | None = None spotify_id: str | None = None preview_url: str | None = None image_url: str | None = None reason: str score: float | None = None saved: bool = False created_at: datetime model_config = {"from_attributes": True} class RecommendationResponse(BaseModel): recommendations: list[RecommendationItem] remaining_today: int | None = None # None = unlimited (pro) class TasteProfile(BaseModel): top_genres: list[dict] avg_energy: float avg_danceability: float avg_valence: float avg_tempo: float era_preferences: list[str] mood_summary: str