BuyingAgent/backend/app/settings.py
Lars 46857715df
Some checks failed
Deploy Development / deploy (push) Successful in 1m49s
Test Suite / pytest-backend (push) Failing after 32s
Test Suite / smoke-dev (push) Successful in 0s
Test Suite / frontend-checks (push) Successful in 30s
Lerne Taxonomie und Trefferliste live von Geizhals, damit Wizard und Kandidaten echte Quelldaten nutzen.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-04 14:53:08 +02:00

37 lines
1.0 KiB
Python

from datetime import datetime
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"
clock_now: datetime | None = None
cors_allowed_origins: str = "http://localhost:5173,http://127.0.0.1:5173"
geizhals_use_fixtures: bool = False
geizhals_playwright: bool = True
@property
def cors_origins(self) -> list[str]:
return [item.strip() for item in self.cors_allowed_origins.split(",") if item.strip()]
@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()