from functools import lru_cache from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore") database_url: str s3_endpoint_url: str s3_bucket_name: str s3_access_key_id: str s3_secret_access_key: str s3_region: str = "us-east-1" api_base_url: str = "http://localhost:8000" max_upload_bytes: int = 52_428_800 # 50 MiB jwt_secret_key: str jwt_expiry_seconds: int = 86400 owner_username: str owner_password: str @lru_cache def get_settings() -> Settings: return Settings()