Конфигурация - Bots
Конфигурация ботов лежит в отдельном JSON-файле: сервер грузит bots.<mode>.json по GIN_MODE (например bots.debug.json, bots.release.json), с откатом на bots.json. Образец — config/bots.example.json.
Секция bots - массив объектов провайдеров. На текущий момент поддерживается тип tg (Telegram).
Схема: infrastructure/config/schemas/bots.schema.json.
Поля элемента bots[]:
- enabled: boolean - включить провайдера
- type: "tg"
- api_type: integer - внутренний api_type; должен совпадать с платформой в основном конфиге
- webhook_url: string - полный URL, на который платформа шлёт вебхуки (напр.
/ext/<api_type>/tg/webhook) - name: map<locale, string> - локализованное имя бота
- short_description: map<locale, string> - короткое описание
- description: map<locale, string> - полное описание
- menu_button:
- text: map<locale, string>
- type: "webapp_url" | "url"
- url: string
- commands: array - набор команд
- enabled: boolean
- command: string - основное имя команды
- alias: string[] - альтернативные имена
- description: map<locale, string> - описание команды
- messages: array - сообщения, отправляемые при выполнении
- type: "text" | "photo"
- photo_url: string (для type="photo")
- text: map<locale, string> (для type="text")
- link_preview_disabled: boolean
- disable_notification: boolean
- buttons_location: "inline" | "keyboard"
- buttons: [][]Button - матрица кнопок для inline/keyboard
- Button:
- text: map<locale, string>
- type: "url" | "webapp_url"
- url: string
- Button:
Пример:
json
{
"bots": [
{
"type": "tg",
"enabled": true,
"api_type": 31,
"webhook_url": "https://example.com/ext/31/tg/webhook",
"name": { "en": "MARV Bot", "ru": "MARV Бот" },
"short_description": { "ru": "Короткое описание" },
"description": { "ru": "Полное описание" },
"menu_button": {
"text": { "ru": "Открыть" },
"type": "webapp_url",
"url": "https://example.bot/app"
},
"commands": [
{
"enabled": true,
"command": "start",
"description": { "ru": "Начало работы" },
"messages": [
{
"type": "text",
"text": { "ru": "Добро пожаловать!" },
"buttons_location": "inline",
"buttons": [
[
{ "text": { "ru": "Открыть сайт" }, "type": "url", "url": "https://example.com" }
]
]
}
]
}
]
}
]
}Полная JSON Schema расположена в infrastructure/config/schemas/bots.schema.json.
