Роутер modules отвечает за управление модульной системой: список модулей, включение/выключение, настройки. Также содержит динамические роутеры, зарегистрированные модулями (например, forum, referrals). Путь: trpc.modules.*

Процедуры

list

Получение списка всех зарегистрированных модулей.
  • Тип: query
  • Доступ: adminProcedure
Ответ: массив объектов ModuleInfo:
id
string
Уникальный идентификатор модуля
name
string
Название модуля
version
string
Версия модуля
description
string
Описание модуля
enabled
boolean
Включён ли модуль
settings
object
Текущие настройки модуля

get

Получение информации о конкретном модуле.
  • Тип: query
  • Доступ: adminProcedure
moduleId
string
required
ID модуля
Ответ:
id
string
ID модуля
name
string
Название
version
string
Версия
description
string
Описание
enabled
boolean
Включён ли
settings
object
Текущие настройки
settingsSchema
object
Схема настроек (типы полей, валидация)

setEnabled

Включение или выключение модуля.
  • Тип: mutation
  • Доступ: adminProcedure
moduleId
string
required
ID модуля
enabled
boolean
required
Включить (true) или выключить (false)
Ответ:
success
boolean
Успешность операции
error
string
Сообщение об ошибке (возвращается вместе с success: false, если реестр модулей не инициализирован)

updateSettings

Обновление настроек модуля.
  • Тип: mutation
  • Доступ: adminProcedure
moduleId
string
required
ID модуля
settings
object
required
Объект с новыми настройками
Ответ:
success
boolean
Успешность операции
error
string
Сообщение об ошибке (возвращается вместе с success: false, если реестр модулей не инициализирован)

getAdminNav

Получение пунктов навигации для админ-панели, зарегистрированных модулями.
  • Тип: query
  • Доступ: adminProcedure
Ответ: массив объектов:
id
string
ID пункта меню
label
string
Текст пункта
href
string
Ссылка
icon
string
Иконка (Lucide)
permission
string
Требуемое право доступа
description
string
Описание пункта меню
order
number
Порядок сортировки пункта в меню

Динамические роутеры модулей

Каждый модуль может зарегистрировать свой tRPC-роутер. Он будет доступен по пути trpc.modules.<routerKey>.*. Например, модуль referrals с routerKey: 'referrals':
// Клиент
const stats = trpc.modules.referrals.getMyStats.useQuery();
const code = trpc.modules.referrals.getMyCode.useQuery();
Модуль forum с routerKey: 'forum':
const topics = trpc.modules.forum.getTopics.useQuery();
const topic = trpc.modules.forum.getTopic.useQuery({ id: 1 });
Динамические роутеры доступны только если модуль включён. Если модуль выключен, его роутер всё ещё зарегистрирован в системе типов, но может возвращать ошибки.