59 lines
2.6 KiB
Markdown
59 lines
2.6 KiB
Markdown
# System Overview
|
||
|
||
## Назначение проекта
|
||
|
||
`DuExpBot` — это платформа VK-бота и miniapp-панели для управления чатами и расширениями (аддонами).
|
||
|
||
Основные направления:
|
||
|
||
1. чат-менеджмент (модерация, роли, события, таймеры, статистика, правила);
|
||
2. модульные команды и утилиты;
|
||
3. каталог аддонов с модерацией и установкой в чаты;
|
||
4. интеграции с внешними сервисами (whois/ip/minecraft-query/callback).
|
||
|
||
## Технологический стек
|
||
|
||
1. Backend: `Go`.
|
||
2. База данных: `PostgreSQL`.
|
||
3. ORM/миграции: `GORM` + `AutoMigrate`.
|
||
4. VK API: `vksdk`.
|
||
5. Miniapp frontend: `React + TypeScript + Vite`.
|
||
6. Router HTTP: `gorilla/mux`.
|
||
|
||
## Высокоуровневая архитектура
|
||
|
||
1. `internal/bootstrap/*`
|
||
Сборка и запуск приложения, wiring зависимостей.
|
||
2. `internal/modules/*`
|
||
Бизнес-модули (chatmanager, addons, manager API, callbacks и т.д.).
|
||
3. `internal/modules/cmd/*`
|
||
Командные модули бота.
|
||
4. `internal/domain/*`
|
||
Модели данных (ORM-сущности).
|
||
5. `internal/db/*`
|
||
Инициализация БД и миграции совместимости.
|
||
6. `miniapp/*`
|
||
UI-панель для управления.
|
||
|
||
## Ключевые подсистемы
|
||
|
||
1. `chatmanager`
|
||
Управление поведением бота в чатах, RBAC, санкции, аудит, автоматизация.
|
||
2. `addons`
|
||
Чатовые аддоны, рантайм исполнения, каталогные установки.
|
||
3. `manager`
|
||
API для miniapp (чаты, группы, настройки, каталог, модерация).
|
||
4. `callbacks`
|
||
Webhook/callback-инфраструктура.
|
||
5. `query`
|
||
Запросы к игровым серверам (Minecraft), обновление статуса.
|
||
6. `whois` + `whois-service`
|
||
WHOIS/RDAP lookup контур.
|
||
|
||
## Модель расширяемости
|
||
|
||
1. Ботовые команды регистрируются модульно.
|
||
2. Аддоны могут исполняться в sandbox/изолированном runtime.
|
||
3. Каталог аддонов имеет этапы: draft -> pending -> approved/rejected/archived.
|
||
4. Уровни аккаунта (`account_type`) применяются для глобальных прав (например, модерация каталога).
|