Архитектура модулей
MMO-DEV WEB разделяет базовые функции кабинета и подключаемые дополнения. Склад и партнерская программа относятся к базовому кабинету и доступны без покупки. Магазин, маркетплейс, кейсы, поддержка, промо-игры и другие расширения подключаются отдельно.
Слои системы
| Слой | Роль |
|---|---|
| SaaS-панель | Хранит настройки проекта, серверов, платежей и модулей |
| Публичный API | Отдает данные и выполняет операции через /graphql |
| Клиентский сайт | Показывает страницы, личный кабинет и пользовательские сценарии |
| Шаблоны | Управляют разметкой, блоками, текстами и выводом данных |
| Игровая инфраструктура | Обрабатывает игровые аккаунты, персонажей, склад и серверные действия |
Жизненный цикл модуля
Этот жизненный цикл относится к подключаемым дополнениям. Базовый склад становится доступен после подключения игрового сервера.
- Модуль подключается или покупается в панели.
- Для проекта включаются нужные настройки.
- Клиентский сайт получает доступ к данным через API.
- Шаблоны выводят блоки и формы модуля.
- Пользователь выполняет действие.
- API возвращает результат или ошибку.
Границы ответственности
Настройки, права доступа и бизнес-правила должны оставаться в панели и API. В шаблонах не нужно дублировать логику расчета цен, прав, бонусов, доступности сервера или платежных условий.
Шаблон отвечает за представление: показать данные, состояние, предупреждение, кнопку или форму. Решение о том, разрешена ли операция, должен принимать API.
Зависимости модулей
Некоторые модули зависят от общих настроек:
- платежные модули требуют платежную систему и валюту;
- базовый склад и игровые дополнения требуют подключенный игровой сервер;
- маркетплейс зависит от игровых аккаунтов, персонажей или предметов;
- поддержка и уведомления зависят от email, Telegram или других каналов связи.
Проектирование изменений
Перед изменением модуля определите:
- какие настройки нужны в панели;
- какие данные нужны шаблону;
- какая API-операция выполняет действие;
- какие ошибки нужно показать пользователю;
- как сценарий выглядит без авторизации;
- что произойдет на мобильном экране.