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.