from typing import Optional from pydantic import BaseSettings, Field class Settings(BaseSettings): """Application settings from environment variables.""" jwt_secret_key: str = Field(default="your-secret-key-here", env="JWT_SECRET_KEY") password_salt: str = Field(default="default-salt", env="PASSWORD_SALT") master_password_hash: Optional[str] = Field(default=None, env="MASTER_PASSWORD_HASH") master_password: Optional[str] = Field(default=None, env="MASTER_PASSWORD") # For development token_expiry_hours: int = Field(default=24, env="SESSION_TIMEOUT_HOURS") anime_directory: str = Field(default="", env="ANIME_DIRECTORY") log_level: str = Field(default="INFO", env="LOG_LEVEL") # Additional settings from .env database_url: str = Field(default="sqlite:///./data/aniworld.db", env="DATABASE_URL") cors_origins: str = Field(default="*", env="CORS_ORIGINS") api_rate_limit: int = Field(default=100, env="API_RATE_LIMIT") default_provider: str = Field(default="aniworld.to", env="DEFAULT_PROVIDER") provider_timeout: int = Field(default=30, env="PROVIDER_TIMEOUT") retry_attempts: int = Field(default=3, env="RETRY_ATTEMPTS") class Config: env_file = ".env" extra = "ignore" settings = Settings()