Notify via Telegram about new support ticket comments
CI / Backend (build + test) (push) Failing after 6m7s
CI / Frontend (lint + typecheck + build) (push) Successful in 39s

Owner's reply goes to all admins (text preview + link to the ticket),
admin's reply goes to the ticket owner as a DM. The comment author is
never notified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Opus 5.5 committed 2026-10-16 17:57:08 +03:00
1 parent 0dcbd4e2b8
commit 1bc86dc426
5 files changed
+117 -5

No files matched your search

+6 -1
View File
@@ -39,6 +39,10 @@ Telegram-бот — **второй канал доставки** (presentation-
захода на сайт** — одобрение продлевает `BillingPaidUntil` той же командой, что и на сайте.
Баг-репорты/предложения — только уведомление с кнопкой-ссылкой на сайт, без инлайн-действий
(переписка и вложения удобнее там).
9. **Новые комментарии в тикетах** (`AddTicketCommentCommandHandler`): реплика владельца тикета →
всем админам `NotifyAdminsTicketCommentAddedAsync` (превью ~300 символов + ссылка на
`/admin/support?ticket={id}`); ответ админа → владельцу DM «💬 Новый ответ в вашем обращении.»
через `NotifyUserAsync` (ссылка на `/support?ticket={id}`). Автора комментария не уведомляем.
**Не реализовано:**
- QR-картинкой и агрегированная подписка в самом боте (только текстовая ссылка на конфиг по кнопке).
@@ -181,7 +185,8 @@ Telegram ──updates──► TelegramBotHostedService → PnvBotUpdateHandl
2. Каждому админу уходит сообщение с превью текста (обрезано до ~300 символов) и, если задан
`Telegram__PublicSiteUrl`, **кнопкой-ссылкой** `🌐 Открыть на сайте` на `/admin/support/{ticketId}`
(`InlineKeyboardButton.WithUrl`, не callback) — тап открывает страницу тикета в браузере.
3. Дальше — только на сайте: переписка, вложения, resolve/close.
3. Дальше — только на сайте: переписка, вложения, resolve/close. О новых комментариях в
тикете обе стороны получают Telegram-уведомление со ссылкой (см. п. 9 выше).
**Заявка на продление** (`ExtensionRequest`, только для billing-ролей) — полностью решается в
Telegram, инлайн-кнопки с префиксом `erq:`: