from pydantic import ( PostgresDsn ) from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): """ Application settings loaded from environment variables. """ database_uri: PostgresDsn environment: str project_name: str # JWT settings secret_key: str = "your-secret-key-change-this-in-production" algorithm: str = "HS256" # Role-based expiration times (in minutes) admin_token_expire_minutes: int = 60 * 24 * 7 # 7 days (default) write_token_expire_minutes: int = 60 * 24 * 3 # 3 days (default) read_only_token_expire_minutes: int = 60 * 8 # 8 hours (default) model_config = SettingsConfigDict( # One level above ./backend env_file='../.env', env_ignore_empty=True, extra='ignore' ) api_v1_str: str = "/api/v1" settings = Settings() # type: ignore