From 5e1f0a00ad25a434e90beaa9f262fa43b2a9a045 Mon Sep 17 00:00:00 2001 From: Toutsu Date: Thu, 21 May 2026 18:38:36 +0300 Subject: [PATCH] docs(adr-001): add Discord Gateway + NetCord decision, update Aspire services --- .../0001-use-vertical-slice-native-aot-and-aspire.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/adr/0001-use-vertical-slice-native-aot-and-aspire.md b/docs/adr/0001-use-vertical-slice-native-aot-and-aspire.md index 3337b7f..ecda634 100644 --- a/docs/adr/0001-use-vertical-slice-native-aot-and-aspire.md +++ b/docs/adr/0001-use-vertical-slice-native-aot-and-aspire.md @@ -56,8 +56,18 @@ Aspire обеспечивает: - Service discovery и передачу connection strings. - OpenTelemetry (traces, metrics, logs) из коробки. - Aspire Dashboard для мониторинга. +- **Три сервиса:** Bot (Telegram long polling + Discord Gateway), Web, PostgreSQL. -### 5. Telegram.Bot 22.x + Long Polling +### 5. Discord Gateway + NetCord + +Discord-интеграция реализована через NetCord Gateway (не DSharpPlus) из-за: +- Нативной совместимости с .NET 10 и минимального размера зависимостей. +- Gateway events маршрутизируются в те же vertical slice handlers, что и Telegram updates. +- Slash-команды регистрируются через NetCord `ApplicationCommandService`. + +Ephemeral-ответы (кнопки Join/Leave/RSVP) используют `InteractionMessageProperties` с `Flags = MessageFlags.Ephemeral`. + +### 6. Telegram.Bot 22.x + Long Polling - Long Polling — единственный вариант для Pi за NAT. - Telegram.Bot поддерживает `System.Text.Json` source generators для AOT.