# -*- coding: utf-8 -*- # hub/ticket/state/paths.py """Пути хранения Ticket внутри общей системы.""" from __future__ import annotations import os from pathlib import Path from PySide6.QtCore import QStandardPaths def _default_root_dir() -> Path: """Вернуть корневую директорию хранения Ticket.""" base = QStandardPaths.writableLocation(QStandardPaths.AppDataLocation) root_base = Path(base) if base else Path.cwd() / ".usms_data" return root_base / "ticket" ROOT_DIR = Path(os.environ.get("USMS_TICKET_ROOT_DIR", _default_root_dir())) ACTS_DIR = Path(os.environ.get("USMS_TICKET_ACTS_DIR", ROOT_DIR / "acts")) REPORTS_DIR = Path(os.environ.get("USMS_TICKET_REPORTS_DIR", ROOT_DIR / "reports")) _PROJECT_ROOT = Path(__file__).resolve().parents[3] ARCHIVE_DIR = Path(os.environ.get("USMS_TICKET_ARCHIVE_DIR", _PROJECT_ROOT / "DB data")) DATA_DIR = Path(os.environ.get("USMS_TICKET_DATA_DIR", ROOT_DIR / "data")) TASKS_FILE = DATA_DIR / "tasks.json" def ensure_storage_directories() -> None: """Создать каталоги хранения Ticket при фактической работе с данными.""" ROOT_DIR.mkdir(parents=True, exist_ok=True) ACTS_DIR.mkdir(parents=True, exist_ok=True) REPORTS_DIR.mkdir(parents=True, exist_ok=True) ARCHIVE_DIR.mkdir(parents=True, exist_ok=True) DATA_DIR.mkdir(parents=True, exist_ok=True)