2025-02-19 14:48:56 +01:00

32 lines
737 B
Python

from functools import lru_cache
from pydantic import Field
from pydantic_settings import BaseSettings
from dotenv import load_dotenv
import os
load_dotenv()
class _BaseConfig(BaseSettings):
environment: str = Field(default=os.getenv("ENVIRONMENT", "development"))
class _AppSettings(_BaseConfig):
mock_user_email: str = "test@test.com"
class _DbSettings(_BaseConfig):
username: str = Field(default=os.getenv("PG_USER"))
password: str = Field(default=os.getenv("PG_PASSWORD"))
db_name: str = Field(default=os.getenv("PG_DB_NAME"))
class _Settings(_BaseConfig):
app: _AppSettings = _AppSettings()
db: _DbSettings = _DbSettings()
@lru_cache
def get_settings() -> _Settings:
return _Settings()