from __future__ import annotations import os from dataclasses import dataclass, field from pathlib import Path @dataclass(frozen=True) class Settings: app_name: str = "smart-deploy-agent-demo" app_env: str = field(default_factory=lambda: os.getenv("APP_ENV", "demo")) app_port: int = field(default_factory=lambda: int(os.getenv("APP_PORT", "8000"))) default_timezone: str = field(default_factory=lambda: os.getenv("DEFAULT_TIMEZONE", "Asia/Shanghai")) database_url: str = field(default_factory=lambda: os.getenv("DATABASE_URL", "sqlite:///./data/agent_demo.db")) enable_sample_app_bridge: bool = field( default_factory=lambda: os.getenv("ENABLE_SAMPLE_APP_BRIDGE", "false").lower() in {"1", "true", "yes", "on"} ) sample_app_root: str = field(default_factory=lambda: os.getenv("SAMPLE_APP_ROOT", "sample-apps/order-service")) def get_settings() -> Settings: return Settings() def ensure_runtime_directories() -> None: Path("data").mkdir(parents=True, exist_ok=True)