> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bedolagam.ru/llms.txt
> Use this file to discover all available pages before exploring further.

# Админские уведомления в чаты

> Все типы уведомлений, отчётов и файлов, отправляемых в админские Telegram-чаты

## Обзор

Бот отправляет **35+ типов уведомлений** в админские Telegram-чаты. Уведомления маршрутизируются по топикам внутри супергруппы — каждый тип событий можно направить в отдельный топик.

## Настройка чатов

### Основной чат уведомлений

```env theme={null}
# Включить уведомления (по умолчанию выключено)
ADMIN_NOTIFICATIONS_ENABLED=true

# ID супергруппы для уведомлений
ADMIN_NOTIFICATIONS_CHAT_ID=-1001234567890

# ID топика для общих уведомлений (опционально)
ADMIN_NOTIFICATIONS_TOPIC_ID=123
```

### Специализированные топики

Каждый тип событий можно направить в свой топик. Если специальный топик не указан — уведомления уходят в `ADMIN_NOTIFICATIONS_TOPIC_ID`.

#### Топики по категориям

```env theme={null}
# Покупки подписок (первичные покупки, гостевые покупки)
ADMIN_NOTIFICATIONS_PURCHASES_TOPIC_ID=

# Продления подписок
ADMIN_NOTIFICATIONS_RENEWALS_TOPIC_ID=

# Активации триалов
ADMIN_NOTIFICATIONS_TRIALS_TOPIC_ID=

# Пополнения баланса
ADMIN_NOTIFICATIONS_BALANCE_TOPIC_ID=

# Докупка трафика, устройств, серверов
ADMIN_NOTIFICATIONS_ADDONS_TOPIC_ID=

# Инфраструктура: ноды, техработы, статус панели, RemnaWave webhook-события
ADMIN_NOTIFICATIONS_INFRASTRUCTURE_TOPIC_ID=

# Ошибки бота, крэш-репорты
ADMIN_NOTIFICATIONS_ERRORS_TOPIC_ID=

# Промокоды, кампании, смена промогруппы, конкурсы
ADMIN_NOTIFICATIONS_PROMO_TOPIC_ID=

# Партнёрские заявки, выводы средств, массовые действия
ADMIN_NOTIFICATIONS_PARTNERS_TOPIC_ID=
```

#### Отдельные топики (настраиваются независимо)

| Переменная | Назначение | Фоллбэк |
| - | - | - |
| `ADMIN_NOTIFICATIONS_TOPIC_ID` | Общие уведомления | General (без топика) |
| `ADMIN_NOTIFICATIONS_TICKET_TOPIC_ID` | Тикеты поддержки | `ADMIN_NOTIFICATIONS_TOPIC_ID` |
| `ADMIN_NOTIFICATIONS_NALOG_TOPIC_ID` | Очередь чеков NaloGO | `ADMIN_NOTIFICATIONS_TOPIC_ID` |
| `SUSPICIOUS_NOTIFICATIONS_TOPIC_ID` | Аномалии трафика | `ADMIN_NOTIFICATIONS_TOPIC_ID` |
| `REFERRAL_WITHDRAWAL_NOTIFICATIONS_TOPIC_ID` | Запросы на вывод средств | `ADMIN_NOTIFICATIONS_TOPIC_ID` |

> [!TIP]
>
> Все топики по категориям опциональны. Если переменная не задана — уведомления автоматически уходят в `ADMIN_NOTIFICATIONS_TOPIC_ID`. Можно настроить только нужные топики, остальные останутся в общем.

### Чат отчётов

```env theme={null}
ADMIN_REPORTS_ENABLED=true
ADMIN_REPORTS_CHAT_ID=-1001234567890
ADMIN_REPORTS_TOPIC_ID=456
ADMIN_REPORTS_SEND_TIME=09:00
```

Если `ADMIN_REPORTS_CHAT_ID` не указан — отчёты отправляются в `ADMIN_NOTIFICATIONS_CHAT_ID`.

### Чат бэкапов

```env theme={null}
BACKUP_SEND_CHAT_ID=-1001234567890
BACKUP_SEND_TOPIC_ID=789
```

### Чат логов

```env theme={null}
LOG_ROTATION_ENABLED=true
LOG_ROTATION_SEND_TO_TELEGRAM=true
LOG_ROTATION_CHAT_ID=-1001234567890
LOG_ROTATION_TOPIC_ID=101
```

Если `LOG_ROTATION_CHAT_ID` не указан — логи отправляются в `BACKUP_SEND_CHAT_ID`.

***

## Финансовые уведомления

### Пополнение баланса

Отправляется при каждом успешном платеже через любую платёжную систему.

**Содержимое:**

* Пользователь (имя, ID, username)
* Статус: первое или повторное пополнение
* Промогруппа (если есть)
* Сумма и способ оплаты
* Баланс до → после
* Статус подписки (триал/активна/неактивна)
* Реферер (если есть)
* Технические детали: ID транзакции, внешний ID, UUID чека

### Покупка подписки

Отправляется при покупке, продлении, конверсии из триала или смене тарифа.

**Заголовок меняется в зависимости от типа:**

* Первая покупка → «Покупка подписки»
* Повторная → «Продление подписки»
* Из триала → «Конверсия из триала»
* Смена тарифа → «Смена тарифа»

**Содержимое:**

* Пользователь, тариф, способ оплаты, сумма
* Период, дата окончания, трафик, устройства, серверы
* Баланс после покупки, реферер, ID транзакции

### Продление подписки

Отправляется при явном продлении существующей подписки.

**Содержимое:**

* Пользователь, промогруппа с деталями скидок
* Сумма, способ оплаты, ID транзакции
* Добавленные дни, старая → новая дата окончания
* Текущие параметры: трафик, устройства, серверы

### Докупка трафика/устройств/серверов

Отправляется при покупке дополнений к подписке.

**Заголовок:** «Докупка трафика» / «Докупка устройств» / «Смена серверов»

**Содержимое:**

* Пользователь, тариф
* Изменение: старое → новое значение
* Стоимость, дата окончания подписки, баланс

***

## Подписки и триалы

### Активация триала

Отправляется при активации пробной подписки.

**Содержимое:**

* Пользователь, статус (новый/существующий)
* Промогруппа, тариф (если тарифный режим)
* Параметры триала: длительность, трафик, устройства, сервер
* Оплата за активацию (если платный триал)
* Дата окончания, реферер

***

## Промо и маркетинг

### Активация промокода

**Содержимое:**

* Пользователь, промогруппа
* Код, тип (деньги / дни подписки / триал), использований
* Бонус (сумма или дни), срок действия
* Баланс до → после, эффект

### Переход по рекламной кампании

Отправляется при клике по deep-ссылке кампании.

**Содержимое:**

* Кампания: название, ID, стартовый параметр
* Пользователь, статус (новый/существующий)
* Промогруппа, бонус кампании (баланс или подписка)

### Смена промогруппы

Отправляется при автоматической (по лояльности) или ручной смене промогруппы.

**Содержимое:**

* Пользователь
* Новая группа с деталями скидок
* Предыдущая группа (если была)
* Инициатор (админ или «Автоматически»), причина

***

## Поддержка

### Новый тикет

Отправляется в топик `ADMIN_NOTIFICATIONS_TICKET_TOPIC_ID`.

**Содержимое:** информация о пользователе, тема тикета, превью сообщения, кнопки для ответа.

### Ответ на тикет

Отправляется при ответе пользователя на существующий тикет.

### Напоминание о SLA

Автоматическая проверка каждые `SUPPORT_TICKET_SLA_CHECK_INTERVAL_SECONDS` (по умолчанию 60 сек). Если тикет без ответа дольше `SUPPORT_TICKET_SLA_MINUTES` (по умолчанию 5 мин) — отправляется напоминание.

```env theme={null}
SUPPORT_TICKET_SLA_ENABLED=true
SUPPORT_TICKET_SLA_MINUTES=5
SUPPORT_TICKET_SLA_CHECK_INTERVAL_SECONDS=60
SUPPORT_TICKET_SLA_REMINDER_COOLDOWN_MINUTES=15
```

Кулдаун между напоминаниями по одному тикету: `SUPPORT_TICKET_SLA_REMINDER_COOLDOWN_MINUTES`.

> [!NOTE]
>
> Уведомления о тикетах можно включить/выключить **без перезапуска** через настройки поддержки в админ-панели.

***

## Партнёры и выводы

### Заявка на партнёрство

**Содержимое:**

* Пользователь
* Данные заявки: название компании, Telegram-канал, сайт, описание, ожидаемые рефералы

### Запрос на вывод средств

Отправляется в два места:

1. Основной топик уведомлений
2. Специальный топик `REFERRAL_WITHDRAWAL_NOTIFICATIONS_TOPIC_ID` (если настроен)

**Содержимое:**

* Пользователь, сумма вывода, текущий баланс, реквизиты

***

## Мониторинг и система

### Статус панели RemnaWave

Отправляется при изменении доступности панели.

| Статус | Описание |
| - | - |
| Online | URL, время ответа, аптайм, пользователи онлайн |
| Offline | URL, ошибка, количество последовательных ошибок |
| Degraded | Список проблем (до 3) |
| Maintenance | Причина, ожидаемое время |

### Режим обслуживания

Отправляется при включении/выключении техработ.

| Событие | Описание |
| - | - |
| Включение | Причина, время, автоматическое или ручное |
| Выключение | Время, длительность окна обслуживания |
| API онлайн | URL, время ответа, предыдущее количество ошибок |
| API оффлайн | URL, номер попытки, текст ошибки |
| Мониторинг запущен | Интервал проверки, порог ошибок |
| Мониторинг остановлен | — |

### Аномалии трафика

Отправляется в топик `SUSPICIOUS_NOTIFICATIONS_TOPIC_ID`.

```env theme={null}
TRAFFIC_MONITORING_ENABLED=true

# Быстрая проверка (каждые N минут)
TRAFFIC_FAST_CHECK_ENABLED=true
TRAFFIC_FAST_CHECK_INTERVAL_MINUTES=5

# Ежедневная проверка
TRAFFIC_DAILY_CHECK_ENABLED=true

# Кулдаун между уведомлениями по одному пользователю
TRAFFIC_NOTIFICATION_COOLDOWN_MINUTES=60
```

Максимум 10 уведомлений за одну проверку. Кулдаун на пользователя предотвращает спам.

### Массовая блокировка

Отправляется когда админ выполняет массовую блокировку пользователей.

**Содержимое:** имя админа, количество заблокированных, не найденных, ошибок, процент успеха.

***

## Обновления бота

### Доступно обновление

Бот проверяет GitHub раз в час. При обнаружении новой версии:

**Содержимое:**

* Тип: релиз / pre-release / dev build
* Версии: текущая → новая (со ссылкой на GitHub)
* Дата релиза, changelog
* Количество доступных обновлений

### Ошибка проверки обновлений

Если GitHub API недоступен — уведомление с ошибкой и информацией о повторной попытке через 1 час.

***

## Запуск и крэши

### Запуск бота

Отправляется один раз при успешном старте.

**Содержимое:**

* Версия бота
* Статистика: пользователи, активные подписки, общий баланс, открытые тикеты
* Статус панели RemnaWave
* Кнопки: GitHub, комьюнити, поддержка

### Крэш-репорт

Отправляется при фатальной ошибке запуска (webhook, БД, Redis, RemnaWave, авторизация).

**Содержимое:**

* Тип и текст ошибки
* Рекомендации по исправлению (зависят от типа ошибки)
* Прикреплённый файл `crash_report_{timestamp}.txt` с полным traceback

### Ошибки в хендлерах

Необработанные исключения автоматически отправляются в админ-чат.

**Содержимое:** файл `error_report_{timestamp}.txt` с traceback, контекстом хендлера и информацией о пользователе.

> [!NOTE]
>
> Отчёты об ошибках отправляются **даже если** `ADMIN_NOTIFICATIONS_ENABLED=false` — достаточно указать `ADMIN_NOTIFICATIONS_CHAT_ID`. Частота ограничена буфером (макс. 10 ошибок) и кулдауном.

***

## Автоматические отчёты

### Ежедневный отчёт

Отправляется автоматически в `ADMIN_REPORTS_SEND_TIME` (московское время).

```env theme={null}
ADMIN_REPORTS_ENABLED=true
ADMIN_REPORTS_CHAT_ID=-1001234567890
ADMIN_REPORTS_TOPIC_ID=456
ADMIN_REPORTS_SEND_TIME=09:00
```

**Содержимое:**

* Новые регистрации
* Активации триалов
* Конверсии триал → платная подписка
* Покупки подписок
* Сумма пополнений и платежей за подписки
* Тикеты поддержки (открытые/закрытые)
* Метрики активности пользователей
* Топ рефереров

### Еженедельный и ежемесячный отчёты

Формируются по запросу через админ-панель. Те же метрики, агрегированные за 7 или 30 дней.

***

## Бэкапы

### Уведомление о бэкапе

Отправляется после каждого автобэкапа (успех или ошибка).

| Результат | Содержимое |
| - | - |
| Успех | Размер файла, длительность |
| Ошибка | Детали ошибки |
| Восстановление | Успех/ошибка восстановления |

### Файл бэкапа

Сам файл бэкапа отправляется в отдельный чат `BACKUP_SEND_CHAT_ID`.

```env theme={null}
BACKUP_SEND_CHAT_ID=-1001234567890
BACKUP_SEND_TOPIC_ID=789

# Интервал автобэкапов
BACKUP_INTERVAL_HOURS=24
BACKUP_TIME=03:00
```

Файл может быть защищён паролем (ZIP). Подпись содержит метаданные бэкапа.

***

## Ротация логов

Ежедневно в `LOG_ROTATION_TIME` архивируются лог-файлы (`bot.log`, `info.log`, `warning.log`, `error.log`, `payments.log`) и отправляются в чат.

```env theme={null}
LOG_ROTATION_ENABLED=true
LOG_ROTATION_SEND_TO_TELEGRAM=true
LOG_ROTATION_TIME=04:00
LOG_ROTATION_CHAT_ID=-1001234567890
LOG_ROTATION_TOPIC_ID=101
```

Файл: `tar.gz` архив с подписью, содержащей список логов и их размеры.

***

## RemnaWave Webhook-события

При настроенном RemnaWave webhook бот получает и пересылает в админ-чат события панели:

### Ноды

| Событие | Описание |
| - | - |
| `node.created` | Новая нода зарегистрирована |
| `node.modified` | Конфигурация ноды изменена |
| `node.enabled` / `node.disabled` | Нода включена/выключена |
| `node.deleted` | Нода удалена |
| `node.connection_lost` | Потеря связи с нодой |
| `node.connection_restored` | Связь восстановлена |
| `node.traffic_notify` | Порог трафика ноды |

### Сервисы

| Событие | Описание |
| - | - |
| `service.panel_started` | Панель запущена/перезапущена |
| `service.login_attempt_failed` | Неудачная попытка входа в панель |
| `service.login_attempt_success` | Успешный вход в панель |
| `service.subpage_config_changed` | Изменение конфига страницы подписки |

### Биллинг нод (CRM)

| Событие | Описание |
| - | - |
| Оплата через 7 дней | Напоминание о предстоящей оплате |
| Оплата через 48 часов | Срочное напоминание |
| Оплата через 24 часа | Критическое напоминание |
| Оплата сегодня | Оплата в день платежа |
| Просрочка 24ч / 48ч / 7 дней | Уведомления о просрочке |

***

## Очередь чеков NaloGO

Статус очереди фискальных чеков отправляется в топик `ADMIN_NOTIFICATIONS_NALOG_TOPIC_ID`.

Кулдаун: 1 час между уведомлениями. Содержимое: статус очереди, количество ошибочных чеков, детали ошибок.

***

## Конкурсы

### Ежедневная сводка по конкурсу

Отправляется ежедневно во время активного реферального конкурса. Содержимое: текущие позиции участников, топ рефереров, количество рефералов.

### Итоги конкурса

Отправляется при завершении конкурса. Содержимое: финальные результаты, победители, общее количество рефералов.

***

## Сводная таблица

| Уведомление | Чат | Топик (категория) | Флаг | Частота |
| - | - | - | - | - |
| Пополнение баланса | NOTIFICATIONS | BALANCE | ENABLED | Событие |
| Покупка подписки | NOTIFICATIONS | PURCHASES | ENABLED | Событие |
| Продление подписки | NOTIFICATIONS | RENEWALS | ENABLED | Событие |
| Докупка трафика/устройств | NOTIFICATIONS | ADDONS | ENABLED | Событие |
| Активация триала | NOTIFICATIONS | TRIALS | ENABLED | Событие |
| Активация промокода | NOTIFICATIONS | PROMO | ENABLED | Событие |
| Переход по кампании | NOTIFICATIONS | PROMO | ENABLED | Событие |
| Смена промогруппы | NOTIFICATIONS | PROMO | ENABLED | Событие |
| Заявка на партнёрство | NOTIFICATIONS | PARTNERS | ENABLED | Событие |
| Запрос на вывод | NOTIFICATIONS | PARTNERS | ENABLED | Событие |
| Массовая блокировка | NOTIFICATIONS | PARTNERS | ENABLED | Событие |
| Новый тикет | NOTIFICATIONS | TICKETS | ENABLED + runtime | Событие |
| Ответ на тикет | NOTIFICATIONS | TICKETS | ENABLED + runtime | Событие |
| Напоминание SLA | NOTIFICATIONS | TICKETS | SLA\_ENABLED | Интервал |
| Аномалии трафика | NOTIFICATIONS | SUSPICIOUS\_TOPIC | Chat ID | Интервал |
| Статус панели | NOTIFICATIONS | INFRASTRUCTURE | ENABLED | Событие |
| Режим обслуживания | NOTIFICATIONS | INFRASTRUCTURE | ENABLED | Событие |
| Доступно обновление | NOTIFICATIONS | INFRASTRUCTURE | ENABLED | Ежечасно |
| Ошибка обновления | NOTIFICATIONS | INFRASTRUCTURE | ENABLED | Ежечасно |
| Запуск бота | NOTIFICATIONS | INFRASTRUCTURE | ENABLED | При старте |
| Крэш-репорт | NOTIFICATIONS | ERRORS | ENABLED | При крэше |
| Ошибки хендлеров | NOTIFICATIONS | ERRORS | Chat ID | Throttled |
| Очередь NaloGO | NOTIFICATIONS | NALOG\_TOPIC | ENABLED | 1ч кулдаун |
| RemnaWave webhook (12 типов) | NOTIFICATIONS | INFRASTRUCTURE | ENABLED | Событие |
| Сводка конкурса | NOTIFICATIONS | PROMO | Конкурс активен | Ежедневно |
| Итоги конкурса | NOTIFICATIONS | PROMO | Конкурс активен | При завершении |
| Ежедневный отчёт | REPORTS | REPORTS\_TOPIC | REPORTS\_ENABLED | Ежедневно |
| Файл бэкапа | BACKUP | BACKUP\_TOPIC | BACKUP\_CHAT set | По расписанию |
| Статус бэкапа | NOTIFICATIONS | INFRASTRUCTURE | ENABLED | По расписанию |
| Архив логов | LOG\_ROTATION | LOG\_TOPIC | LOG\_ENABLED | Ежедневно |

> [!WARNING]
>
> Бот **не должен** быть администратором в чате с топиками — иначе он будет отвечать на сообщения. Достаточно добавить бота как обычного участника. Для топиков нужна супергруппа с включёнными топиками.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.