refactor(#22): разделить SessionBatchRenderer на neutral view и Telegram renderer

- SessionBatchViewBuilder в Shared собирает нейтральную view model
- TelegramSessionBatchRenderer в Bot/Web рендерит HTML + InlineKeyboardMarkup
- DiscordSessionBatchRenderer заглушка подготовлена
- BatchMessageEditor перенесён из Shared в Bot/Web
- Удалён SessionBatchRenderer, убран Telegram.Bot из Shared.csproj
- Обновлены все вызовы (7 handler-ов + Web SessionService + smoke tests)
- Новые тесты на builder и Telegram renderer
This commit is contained in:
root
2026-05-06 07:57:23 +00:00
parent 5dee2d87f5
commit 14b9bf15f2
25 changed files with 741 additions and 157 deletions
@@ -3,6 +3,7 @@ using GmRelay.Bot.Features.Sessions.RescheduleSession;
using GmRelay.Shared.Domain;
using GmRelay.Shared.Rendering;
using Telegram.Bot.Types.ReplyMarkups;
using GmRelay.Bot.Infrastructure.Telegram;
namespace GmRelay.Bot.Tests.Features.Landing;
@@ -310,7 +311,7 @@ public sealed class TelegramLandingPromisesSmokeTests
private void RenderBatch()
{
var renderResult = SessionBatchRenderer.Render(
var view = SessionBatchViewBuilder.Build(
Title,
sessions
.Select(session => new SessionBatchDto(
@@ -326,6 +327,7 @@ public sealed class TelegramLandingPromisesSmokeTests
participant.TelegramUsername,
participant.RegistrationStatus))
.ToList());
var renderResult = TelegramSessionBatchRenderer.Render(view);
if (Messenger.HasPublishedMessage)
{