Files
vynl/backend/app/core/config.py
root 1eea237c08 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
2026-03-31 00:21:58 -05:00

45 lines
1.1 KiB
Python

from pydantic_settings import BaseSettings
class Settings(BaseSettings):
APP_NAME: str = "Vynl"
DEBUG: bool = False
SECRET_KEY: str = "change-me-in-production"
ACCESS_TOKEN_EXPIRE_MINUTES: int = 60 * 24 * 7 # 7 days
# Database
DATABASE_URL: str = "postgresql+asyncpg://vynl:vynl@localhost:5432/vynl"
DATABASE_URL_SYNC: str = "postgresql://vynl:vynl@localhost:5432/vynl"
# Redis
REDIS_URL: str = "redis://localhost:6379/0"
# Spotify
SPOTIFY_CLIENT_ID: str = ""
SPOTIFY_CLIENT_SECRET: str = ""
SPOTIFY_REDIRECT_URI: str = "http://localhost:5173/auth/spotify/callback"
# Claude API
ANTHROPIC_API_KEY: str = ""
# Stripe
STRIPE_SECRET_KEY: str = ""
STRIPE_PUBLISHABLE_KEY: str = ""
STRIPE_PRICE_ID: str = ""
STRIPE_WEBHOOK_SECRET: str = ""
# Last.fm
LASTFM_API_KEY: str = ""
# Frontend
FRONTEND_URL: str = "http://localhost:5173"
# Rate limits (free tier)
FREE_WEEKLY_RECOMMENDATIONS: int = 5
FREE_MAX_PLAYLISTS: int = 1
model_config = {"env_file": ".env", "extra": "ignore"}
settings = Settings()