from functools import lru_cache from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_file=".env", extra="ignore") db_host: str = "postgres" db_port: int = 5432 db_name: str = "buyingagent" db_user: str = "buyingagent" db_password: str = "change_me" environment: str = "development" engine_build: str = "dev" @property def database_url(self) -> str: return ( f"postgresql+psycopg://{self.db_user}:{self.db_password}" f"@{self.db_host}:{self.db_port}/{self.db_name}" ) @lru_cache def get_settings() -> Settings: return Settings()