Тикеты
Приватные каналы поддержки по кнопке — от создания до автоматического архива переписки
Тикеты — это классическая система поддержки: участник жмёт кнопку на панели, получает свой приватный канал с сотрудниками поддержки, а после закрытия вся переписка сохраняется в архив. Никаких слэш-команд — всё управляется кнопками прямо в Discord.
TL;DR для нетерпеливых. Кнопка на панели → модалка (причина + описание) → приватный пронумерованный канал только для автора и поддержки. У тикета три кнопки: закрыть, заморозить, пригласить/исключить. При закрытии переписка (включая картинки и гифки) архивируется и доступна в панели ещё logRetentionDays дней (по умолчанию 30), потом удаляется сама.
🎟️ Как это выглядит для участника
- Нажимает кнопку «Открыть тикет» на панели в специальном канале (её отправляет админ из веб-панели).
- Заполняет модальное окно: короткая причина обращения и подробное описание — оба поля обязательны.
- Маяри создаёт приватный текстовый канал
🎟️-username-номерв заданной категории (или в той же категории, где стоит панель, если своя не выбрана) и пингует автора и роли поддержки.
Ограничения против спама. У каждого участника может быть только один активный тикет одновременно — новый не создать, пока не закрыт текущий. После создания тикета включается 10-минутный кулдаун на повторное открытие.
🔧 Управление тикетом
В канале тикета — три кнопки, доступные только сотрудникам с ролью поддержки:
| Кнопка | Что делает |
|---|---|
| 🔒 Закрыть | Архивирует переписку и удаляет канал (см. ниже) |
| 🥶 Заморозить / 🔥 Разморозить | Отключает автору тикета возможность писать в канале, не трогая доступ персонала |
| 🙋 Пригласить | Открывает выбор пользователя — если у него уже был доступ, он забирается; если не было — выдаётся |
📜 Закрытие и архив
При закрытии Маяри не просто удаляет канал — она честно сохраняет всё, что в нём было:
- Собирает до 500 последних сообщений с датами и авторами.
- Перезаливает в собственное хранилище (Cloudflare R2) все вложения, картинки/видео из эмбедов (включая гифки Tenor/Giphy) и даже ссылки на медиа прямо в тексте сообщений — оригинальные ссылки Discord протухают, R2-копии остаются доступны всегда.
- Сохраняет получившийся транскрипт с указанием, кто создал тикет и кто его закрыл.
- Присылает подтверждение в канал и удаляет его через 5 секунд.
Архив живёт ограниченное время. Транскрипт хранится logRetentionDays дней (по умолчанию 30) и затем удаляется из базы автоматически — TTL на уровне MongoDB, никакой ручной чистки не требуется. Посмотреть архивные переписки, отфильтровать по имени/дате или удалить лог раньше срока можно в разделе «Логи тикетов» веб-панели.
🛠️ Что настраивается в панели
Раздел «Тикеты» в веб-панели:
- включение модуля;
- канал, где публикуется панель с кнопкой создания;
- категория, в которой создаются каналы тикетов;
- роль (или несколько ролей) поддержки — именно они видят новые тикеты и могут ими управлять;
- срок хранения архива (
logRetentionDays); - содержимое самой панели — обычное сообщение или Embed (включая формат V2), полностью на усмотрение админа.
Куда дальше
- Модерация — если тикет перерастает в разбирательство, наказания настраиваются отдельно.
- Тэги конструктора сообщений — переменные для других кастомных сообщений (приветствия, бусты, уровни).