2025-02-19 16:25:48 +01:00

36 lines
839 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"))
host: str = Field(default=os.getenv("PG_HOST"))
port: int = Field(default=os.getenv("PG_PORT"))
class _Settings(_BaseConfig):
app: _AppSettings = _AppSettings()
db: _DbSettings = _DbSettings()
@lru_cache
def get_settings() -> _Settings:
return _Settings()