system/config/REGISTRY.yaml
# ═══════════════════════════════════════════════════════════════════════════════
# PLATFORM REGISTRY — Единый реестр имён, путей, сокращений
# ═══════════════════════════════════════════════════════════════════════════════
#
# НАЗНАЧЕНИЕ:
#   Централизованное определение ВСЕХ имён на уровне платформы.
#   Один раз определили → везде используется единообразно.
#
# ВЕРСИЯ: 1.0.0
# ДАТА: 2026-01-07
#
# ═══════════════════════════════════════════════════════════════════════════════

version: "1.0.0"

# ═══════════════════════════════════════════════════════════════════════════════
# ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
# ═══════════════════════════════════════════════════════════════════════════════

environment:
  # Основные директории
  WORKSPACE: "/opt/claude-workspace"
  DATASPACE: "/mnt/beget-s3"
  BACKUPSPACE: "/mnt/beget-infra"

  # Python
  PYTHONPATH: "$WORKSPACE"

  # Временные
  TMPDIR: "/tmp"

# ═══════════════════════════════════════════════════════════════════════════════
# СТРУКТУРА ПЛАТФОРМЫ
# ═══════════════════════════════════════════════════════════════════════════════

directories:
  # Платформа
  architect: "$WORKSPACE/architect"
  library: "$WORKSPACE/library"
  system: "$WORKSPACE/system"
  infra: "$WORKSPACE/infra"

  # Проекты
  projects: "$WORKSPACE/projects"

  # Данные
  data: "$DATASPACE"
  backups: "$BACKUPSPACE"

# ═══════════════════════════════════════════════════════════════════════════════
# LIBRARY: ИМПОРТЫ И СОКРАЩЕНИЯ
# ═══════════════════════════════════════════════════════════════════════════════

library:
  # API Коннекторы (короткое имя → полный путь)
  connectors:
    ozon:
      path: "library.connectors.api.ozon"
      main_class: "OzonClient"
      description: "Озон API"

    onec:
      path: "library.connectors.api.onec"
      main_class: "OneCClient"
      description: "1С API"
      aliases: ["1c"]  # Псевдонимы

    pochta:
      path: "library.connectors.api.pochta"
      main_class: "PochtaClient"
      description: "Почта России API"

    telegram:
      path: "library.connectors.api.telegram"
      main_class: "TelegramClient"
      description: "Telegram Bot API"

    nocodb:
      path: "library.connectors.api.nocodb"
      main_class: "NocoDBClient"
      description: "NocoDB API"

  # Функции
  functions:
    price_parser:
      path: "library.functions.parsers.price"
      description: "Парсер прайс-листов"

    article_parser:
      path: "library.functions.parsers.article"
      description: "Парсер артикулов"

  # Внутренние утилиты
  internal:
    filemanager:
      path: "library.internal.filemanager"
      main_class: "FileManager"
      description: "Управление файлами"

# ═══════════════════════════════════════════════════════════════════════════════
# СЕРВИСЫ ПЛАТФОРМЫ
# ═══════════════════════════════════════════════════════════════════════════════

services:
  # Документация
  docs:
    url: "http://docs.0kt.ru"
    port: 8080
    path: "$WORKSPACE"

  # Загрузка файлов
  upload:
    url: "http://upload.0kt.ru"
    port: 8081
    path: "$DATASPACE"

  # Публикация файлов
  file_share:
    url: "http://share.0kt.ru"
    url_ip: "http://91.218.142.168:8897"
    port: 8897
    storage: "/var/www/html/files"

  # NocoDB
  nocodb:
    url: "http://docs.0kt.ru:8085"
    port: 8085

  # Планировщик
  scheduler:
    path: "$WORKSPACE/system/scheduler"
    config: "$WORKSPACE/system/scheduler/schedule.yaml"

# ═══════════════════════════════════════════════════════════════════════════════
# ПРОЕКТЫ
# ═══════════════════════════════════════════════════════════════════════════════

projects:
  pirotehnika:
    name: "Пиротехника"
    code: "pirotehnika"
    path: "$WORKSPACE/projects/org/pirotehnika"
    data: "$DATASPACE/projects/pirotehnika"

  lideravto:
    name: "Лидер Авто"
    code: "lideravto"
    path: "$WORKSPACE/projects/org/lideravto"
    data: "$DATASPACE/projects/lideravto"

  platform_new:
    name: "Platform New"
    code: "platform-new"
    path: "$WORKSPACE/projects/platform-new"

# ═══════════════════════════════════════════════════════════════════════════════
# ПРАВИЛА ИМЕНОВАНИЯ
# ═══════════════════════════════════════════════════════════════════════════════

naming:
  # Python модули
  python_module: "snake_case"
  python_class: "PascalCase"
  python_function: "snake_case"
  python_constant: "UPPER_SNAKE_CASE"

  # Файлы
  markdown: "UPPER_SNAKE_CASE.md"
  yaml: "lower_snake_case.yaml"
  python: "snake_case.py"

  # Базы данных (architect/standards/DATABASE_NAMING.md)
  database_table_app: "app_{name}"      # Приложение
  database_table_sol: "sol_{name}"      # Решение
  database_table_prj: "prj_{name}"      # Проект
  database_table_usr: "usr_{name}"      # Пользовательская

# ═══════════════════════════════════════════════════════════════════════════════
# ПСЕВДОНИМЫ (для обратной совместимости)
# ═══════════════════════════════════════════════════════════════════════════════

aliases:
  # 1С → onec (валидный Python identifier)
  "1c": "onec"

  # Директории
  "ws": "$WORKSPACE"
  "ds": "$DATASPACE"

# ═══════════════════════════════════════════════════════════════════════════════
# CHANGELOG
# ═══════════════════════════════════════════════════════════════════════════════

changelog:
  - version: "1.0.0"
    date: "2026-01-07"
    changes:
      - "Создан централизованный реестр имён"
      - "Определены все переменные окружения"
      - "Определены сокращения для library/"
      - "Определены сервисы платформы"