Add discovery modes, personalization controls, taste profile page, updated pricing
- Discovery modes: Sonic Twin, Era Bridge, Deep Cuts, Rising Artists - Discovery dial (Safe to Adventurous slider) - Block genres/moods exclusion - Thumbs down/dislike on recommendations - My Taste page with Genre DNA breakdown, audio feature meters, listening personality - Updated pricing: Free (5/week), Premium ($6.99/mo), Family ($12.99/mo coming soon) - Weekly rate limiting instead of daily - Alembic migration for new fields
This commit is contained in:
@@ -7,6 +7,9 @@ class RecommendationRequest(BaseModel):
|
||||
playlist_id: int | None = None
|
||||
query: str | None = None # Manual search/request
|
||||
bandcamp_mode: bool = False # Prioritize Bandcamp/indie artists
|
||||
mode: str = "discover" # discover, sonic_twin, era_bridge, deep_cuts, rising
|
||||
adventurousness: int = 3 # 1-5
|
||||
exclude: str | None = None # comma-separated genres to exclude
|
||||
|
||||
|
||||
class RecommendationItem(BaseModel):
|
||||
@@ -21,6 +24,7 @@ class RecommendationItem(BaseModel):
|
||||
reason: str
|
||||
score: float | None = None
|
||||
saved: bool = False
|
||||
disliked: bool = False
|
||||
created_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
@@ -28,7 +32,7 @@ class RecommendationItem(BaseModel):
|
||||
|
||||
class RecommendationResponse(BaseModel):
|
||||
recommendations: list[RecommendationItem]
|
||||
remaining_today: int | None = None # None = unlimited (pro)
|
||||
remaining_this_week: int | None = None # None = unlimited (pro)
|
||||
|
||||
|
||||
class TasteProfile(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user