This commit is contained in:
Tom Trappmann
2025-12-23 17:17:33 +01:00
commit d04730edd8
28 changed files with 387 additions and 0 deletions

37
app/core/config.py Normal file
View File

@@ -0,0 +1,37 @@
from functools import lru_cache
from typing import List
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
model_config = SettingsConfigDict(env_file=".env", env_ignore_empty=True)
PROJECT_NAME: str = "NautilusDesk API"
SECRET_KEY: str = "change-me"
ACCESS_TOKEN_EXPIRE_MINUTES: int = 60
POSTGRES_SERVER: str = "localhost"
POSTGRES_PORT: int = 5432
POSTGRES_USER: str = "postgres"
POSTGRES_PASSWORD: str = "postgres"
POSTGRES_DB: str = "nautilusdesk"
DATABASE_URL: str | None = None
BACKEND_CORS_ORIGINS: List[str] = []
@property
def database_url(self) -> str:
if self.DATABASE_URL:
return self.DATABASE_URL
return (
f"postgresql+psycopg2://{self.POSTGRES_USER}:"
f"{self.POSTGRES_PASSWORD}@{self.POSTGRES_SERVER}:"
f"{self.POSTGRES_PORT}/{self.POSTGRES_DB}"
)
@lru_cache
def get_settings() -> Settings:
return Settings()