feat: implement DiscordSessionBatchRenderer for Embed and Buttons #84

Closed
Toutsu wants to merge 0 commits from feature/issue-27-discord-session-batch-renderer into main
Owner

Summary

Реализован DiscordSessionBatchRenderer для отображения сессий в Discord через Embed + Buttons.

Changes

  • src/GmRelay.DiscordBot/Rendering/DiscordSessionBatchRenderer.cs — новый рендерер, принимает SessionBatchViewModel, возвращает (IReadOnlyList<EmbedProperties>, IReadOnlyList<ActionRowProperties>)
  • tests/GmRelay.Bot.Tests/Rendering/DiscordSessionBatchRendererTests.cs — 7 тестов covering open/full/waitlist/cancelled/reschedule/green/yellow/red states
  • Удалён stub src/GmRelay.Shared/Rendering/DiscordSessionBatchRenderer.cs
  • Бамп версии 2.2.0 → 2.3.0 (minor, feature label)

Test plan

  • dotnet build для всех проектов проходит
  • Все 187 тестов проходят
  • dotnet format --verify-no-changes чисто
  • 7 новых тестов на Discord renderer проходят

Closes #27

## Summary Реализован `DiscordSessionBatchRenderer` для отображения сессий в Discord через Embed + Buttons. ## Changes - `src/GmRelay.DiscordBot/Rendering/DiscordSessionBatchRenderer.cs` — новый рендерер, принимает `SessionBatchViewModel`, возвращает `(IReadOnlyList<EmbedProperties>, IReadOnlyList<ActionRowProperties>)` - `tests/GmRelay.Bot.Tests/Rendering/DiscordSessionBatchRendererTests.cs` — 7 тестов covering open/full/waitlist/cancelled/reschedule/green/yellow/red states - Удалён stub `src/GmRelay.Shared/Rendering/DiscordSessionBatchRenderer.cs` - Бамп версии 2.2.0 → 2.3.0 (minor, feature label) ## Test plan - [x] `dotnet build` для всех проектов проходит - [x] Все 187 тестов проходят - [x] `dotnet format --verify-no-changes` чисто - [x] 7 новых тестов на Discord renderer проходят Closes #27
Toutsu added 3 commits 2026-05-18 18:11:26 +03:00
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Render SessionBatchViewModel into NetCord EmbedProperties + ActionRowProperties
- One embed per session with game title, Moscow date, players, capacity, waitlist, status
- Buttons map AvailableAction to ButtonProperties with platform-neutral custom IDs
- Cancelled sessions get embed but no action row
- Full sessions trigger waitlist button label
- 7 tests covering open/full/waitlist/cancelled/reschedule states

Closes #27

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
chore: bump version to 2.3.0
PR Checks / test-and-build (pull_request) Successful in 5m34s
5dddf99288
Synchronized across Directory.Build.props, compose.yaml, deploy.yml, NavMenu.razor, and DiscordProjectStructureTests.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Toutsu closed this pull request 2026-05-19 10:34:54 +03:00
Some checks are pending
PR Checks / test-and-build (pull_request) Successful in 5m34s

Pull request closed

Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Toutsu/GmRelayBot#84