2026-04-25 20:43:37 +12:00
|
|
|
import os
|
|
|
|
|
from dataclasses import dataclass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
|
|
|
class Settings:
|
|
|
|
|
app_name: str
|
|
|
|
|
database_url: str
|
2026-04-25 22:51:36 +12:00
|
|
|
client_name: str
|
|
|
|
|
client_email: str
|
|
|
|
|
client_password: str
|
|
|
|
|
client_tenant_id: str
|
|
|
|
|
admin_name: str
|
|
|
|
|
admin_email: str
|
|
|
|
|
admin_password: str
|
|
|
|
|
auth_secret: str
|
2026-04-25 20:43:37 +12:00
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def from_env(cls) -> "Settings":
|
|
|
|
|
return cls(
|
|
|
|
|
app_name=os.getenv("APP_NAME", "Data Entry App API"),
|
|
|
|
|
database_url=os.getenv("DATABASE_URL", "sqlite:///./data_entry_app.db"),
|
2026-04-25 22:51:36 +12:00
|
|
|
client_name=os.getenv("CLIENT_NAME", "Hunter Premium Produce"),
|
|
|
|
|
client_email=os.getenv("CLIENT_EMAIL", "operator@example.com"),
|
|
|
|
|
client_password=os.getenv("CLIENT_PASSWORD", "changeme"),
|
|
|
|
|
client_tenant_id=os.getenv("CLIENT_TENANT_ID", "hunter-premium-produce"),
|
|
|
|
|
admin_name=os.getenv("ADMIN_NAME", "Lean 101"),
|
|
|
|
|
admin_email=os.getenv("ADMIN_EMAIL", "admin@lean101.local"),
|
|
|
|
|
admin_password=os.getenv("ADMIN_PASSWORD", "lean101-admin"),
|
|
|
|
|
auth_secret=os.getenv("AUTH_SECRET", "lean-101-local-dev-secret"),
|
2026-04-25 20:43:37 +12:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
settings = Settings.from_env()
|