Задача
Модернизировать текущего Telegram-бота - обновить несколько ключевых модулей согласно требованиям ниже. Ожидается, что все функции будут корректно интегрированы с существующей кодовой базой.
1. Дизайн
- Переработать интерфейс бота - привести к единой, современной стилистике (цветовая схема, шрифты, форматирование сообщений).
- Учесть, что бот работает в формате меню / команд, возможно применить inline‑кнопки и структурированное оформление ответов.
2. Логирование по топикам
- Реализовать отправку отдельных логов в различные топики одного чата.
- Пример: логи по заказам → топик #1, по ошибкам → топик #2, по платежам → топик #3.
3. Система отзывов
- Восстановить или доделать функционал, чтобы отзывы корректно собирались, сохранялись и отображались.
- Механика: пользователь отправляет текст/рейтинг → бот принимает, пересылает админу утверждает и/или индексирует в базе.
4. Партнёрские промокоды (50% доход)
- Выдать выбранному пользователю (по конкретному telegram‑id) эксклюзивный промокод.
- Если любой другой человек активирует этот промокод, владелец промокода автоматически получает 50% от суммы чистой прибыли, принесённой новым пользователем (настроить алгоритм расчёта).
5. Кнопка вывода: разграничение ролей
- Обычные пользователи - кнопка вывода удаляется из сообщений/clavier, интерфейс скрывается.
- Админы - отображается эксклюзивная кнопка вывода с логикой шагов:
- Админ вводит желаемую сумму (например, 5000).
- Бот ищет активные пополнения (обработка карт): создаётся логическая цепочка транзакций. Каждое новое пополнение, поступающее «на баланс», фиксируется по карте (реквизитам, которые бот автоматически меняет для конкретного админ-запроса).
- Пополнения прибывают по сумме и сразу вычитаются из заказанной суммы (например, задал 5000 → пришло 200 → долг снизился до 4800). Процесс продолжается до полного покрытия (сумма <=0) и подтверждения / закрытия заявки.
6. Корректировка базы данных
- Оптимизировать таблицы: добавить связь партнёр-промокод, статусы выводов, бухгалтерские метки для транзакций.
- Обеспечить поддержку прироста данных и откатов при ошибках.