"""API-Konfiguration.""" from pydantic_settings import BaseSettings from pydantic import Field from typing import Optional class Settings(BaseSettings): """Rippy API Settings.""" # API Keys tmdb_api_key: Optional[str] = Field(default=None, description="TMDB API Key (Pflicht für Metadaten-Lookup)") thetvdb_api_key: Optional[str] = Field(default=None, description="TVDb API Key (Optional)") musicbrainz_user: Optional[str] = Field(default=None, description="MusicBrainz User (Optional)") # Cache cache_ttl: int = Field(default=86400, ge=3600, le=604800, description="Cache TTL in Sekunden (1h - 7d)") # Ripping rip_output_dir: str = Field(default="/app/media", description="Basisverzeichnis für Ripping-Ergebnisse") temp_dir: str = Field(default="/app/temp", description="Temp-Verzeichnis für Ripping") # Logging log_level: str = Field(default="INFO", pattern="^(DEBUG|INFO|WARNING|ERROR|CRITICAL)$", description="Log Level") # JWT — PFLICHT (auth.py verweigert den Start ohne; kein Zufalls-Fallback mehr) jwt_secret_key: Optional[str] = Field(default=None, description="JWT Secret Key (PFLICHT, siehe .env)") # Admin-Login (MVP — vorher hartkodiert admin/rippy123 in main.py) admin_username: str = Field(default="admin", description="Admin-Benutzername") admin_password: str = Field(default="rippy123", description="Admin-Passwort (per .env ÄNDERN!)") class Config: env_file = ".env" env_file_encoding = "utf-8" settings = Settings()