from __future__ import annotations import os from dotenv import load_dotenv load_dotenv() def _require(name: str) -> str: value = os.getenv(name) if not value: raise RuntimeError(f"Required environment variable {name!r} is not set") return value BOT_TOKEN: str = _require("BOT_TOKEN") CHAT_ID: str = _require("CHAT_ID") DB_PATH: str = os.getenv("DB_PATH", "baton.db") WEBHOOK_SECRET: str = _require("WEBHOOK_SECRET") WEBHOOK_URL: str = _require("WEBHOOK_URL") WEBHOOK_ENABLED: bool = os.getenv("WEBHOOK_ENABLED", "true").lower() == "true" FRONTEND_ORIGIN: str = os.getenv("FRONTEND_ORIGIN", "http://localhost:3000") APP_URL: str | None = os.getenv("APP_URL") # Публичный URL приложения для keep-alive self-ping ADMIN_TOKEN: str = _require("ADMIN_TOKEN") ADMIN_CHAT_ID: str = os.getenv("ADMIN_CHAT_ID", "5694335584") VAPID_PRIVATE_KEY: str = os.getenv("VAPID_PRIVATE_KEY", "") VAPID_PUBLIC_KEY: str = os.getenv("VAPID_PUBLIC_KEY", "") VAPID_CLAIMS_EMAIL: str = os.getenv("VAPID_CLAIMS_EMAIL", "")