import os import sys from pathlib import Path from dotenv import load_dotenv load_dotenv() BOT_TOKEN: str = os.environ["MAX_BOT_TOKEN"] # ── Dry-run режим ───────────────────────────────────────────────────────────── # Включается флагом --dry-run при запуске или переменной DRY_RUN=true в .env. # В этом режиме все записывающие вызовы к Intradesk НЕ выполняются — # вместо этого их payload печатается в консоль. DRY_RUN: bool = ( "--dry-run" in sys.argv or os.environ.get("DRY_RUN", "").lower() in ("1", "true", "yes") ) _project_root = Path(__file__).parent _db_path_raw = os.environ.get("DB_PATH", "data/support.db") DB_PATH: str = str( Path(_db_path_raw) if Path(_db_path_raw).is_absolute() else _project_root / _db_path_raw ) ADMIN_USERNAME: str = os.environ.get("ADMIN_USERNAME", "admin") ADMIN_PASSWORD: str = os.environ.get("ADMIN_PASSWORD", "changeme") ADMIN_HOST: str = os.environ.get("ADMIN_HOST", "0.0.0.0") ADMIN_PORT: int = int(os.environ.get("ADMIN_PORT", "8080")) # ── Intradesk API ────────────────────────────────────────────────────────────── INTRADESK_BASE_URL: str = os.environ.get("INTRADESK_BASE_URL", "https://apigw.intradesk.ru") # Ключ для /settings/odata (клиенты, пользователи) INTRADESK_API_KEY: str = os.environ.get("INTRADESK_API_KEY", "") # Ключ для /tasklist/odata (чтение заявок) и /taskhistory (история/комментарии) INTRADESK_TASKS_API_KEY: str = os.environ.get("INTRADESK_TASKS_API_KEY", "") # Ключ для /changes/v3/tasks (создание и изменение заявок) INTRADESK_CHANGES_API_KEY: str = os.environ.get("INTRADESK_CHANGES_API_KEY", "") # Путь сервиса для новых заявок (Настройки → Сервисы → «Путь сервиса», напр. "84681/84683/") INTRADESK_DEFAULT_SERVICE: str = os.environ.get("INTRADESK_DEFAULT_SERVICE", "") # ID типа заявки по умолчанию (Настройки → Заявки → Типы заявок → ID) INTRADESK_DEFAULT_TASK_TYPE: str = os.environ.get("INTRADESK_DEFAULT_TASK_TYPE", "") # ID группы исполнителей для фильтрации заявок INTRADESK_EXECUTOR_GROUP: str = os.environ.get("INTRADESK_EXECUTOR_GROUP", "") # Список ID исполнителей через запятую (доп. фильтр) INTRADESK_EXECUTORS: list[str] = [ e.strip() for e in os.environ.get("INTRADESK_EXECUTORS", "").split(",") if e.strip() ]