Spaces:
Sleeping
Sleeping
| from pydantic_settings import BaseSettings | |
| from typing import Optional | |
| import os | |
| from dotenv import load_dotenv | |
| # Load environment variables from .env file | |
| load_dotenv() | |
| class Settings(BaseSettings): | |
| """ | |
| Application settings loaded from environment variables. | |
| """ | |
| # Database settings | |
| database_url: str = os.getenv("DATABASE_URL", "postgresql+asyncpg://username:password@localhost:5432/todo_app") | |
| db_echo: bool = os.getenv("DB_ECHO", "False").lower() == "true" | |
| # JWT settings | |
| jwt_secret: str = os.getenv("BETTER_AUTH_SECRET", "your-super-secret-jwt-signing-key-here") | |
| jwt_algorithm: str = os.getenv("JWT_ALGORITHM", "HS256") | |
| access_token_expire_minutes: int = int(os.getenv("ACCESS_TOKEN_EXPIRE_MINUTES", "30")) | |
| refresh_token_expire_days: int = int(os.getenv("REFRESH_TOKEN_EXPIRE_DAYS", "7")) | |
| # Application settings | |
| app_name: str = "Todo List API" | |
| app_version: str = "1.0.0" | |
| debug: bool = os.getenv("DEBUG", "False").lower() == "true" | |
| # AI settings | |
| gemini_api_key: Optional[str] = os.getenv("GEMINI_API_KEY") | |
| model_config = { | |
| "env_file": ".env", | |
| "case_sensitive": True, | |
| "extra": "allow" | |
| } | |
| # Create a settings instance | |
| settings = Settings() |