2026-10-04 13:04:59 +02:00
|
|
|
from datetime import datetime
|
2026-10-03 10:47:48 +02:00
|
|
|
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"
|
2026-10-04 13:04:59 +02:00
|
|
|
clock_now: datetime | None = None
|
|
|
|
|
cors_allowed_origins: str = "http://localhost:5173,http://127.0.0.1:5173"
|
|
|
|
|
|
|
|
|
|
@property
|
|
|
|
|
def cors_origins(self) -> list[str]:
|
|
|
|
|
return [item.strip() for item in self.cors_allowed_origins.split(",") if item.strip()]
|
2026-10-03 10:47:48 +02:00
|
|
|
|
|
|
|
|
@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()
|