import os from pathlib import Path from pydantic_settings import BaseSettings _HERE = Path(__file__).parent # always points to local_backend/ # Use AppData on Windows (avoids Controlled Folder Access blocks), # fall back to local_backend/ on Linux/Mac/Docker if os.name == "nt": _DB_DEFAULT = Path(os.environ.get("LOCALAPPDATA", Path.home() / "AppData" / "Local")) / "pos" / "pos.db" _DB_DEFAULT.parent.mkdir(parents=True, exist_ok=True) else: _DB_DEFAULT = _HERE / "pos.db" class Settings(BaseSettings): SITE_ID: str = "" CLOUD_URL: str = "" SECRET_KEY: str = "change-me-generate-a-long-random-string" LICENSE_GRACE_HOURS: int = 24 DATABASE_URL: str = f"sqlite:///{_DB_DEFAULT.as_posix()}" model_config = {"env_file": str(_HERE / ".env")} settings = Settings()