Update wiki page 'Home'

2026-04-24 13:30:15 +03:00
parent 77aca76235
commit 19788f4808
+18 -22
@@ -1,43 +1,39 @@
# Главная
GM-Relay — Telegram-бот и Blazor-панель управления для организации TTRPG-сессий. Текущее состояние документации соответствует репозиторию `Toutsu/GmRelayBot` на 2026-04-24.
GM-Relay — Telegram-бот и Blazor-панель для организации TTRPG-сессий. Текущее состояние документации соответствует репозиторию `Toutsu/GmRelayBot` и релизу **v1.2.0**.
## Текущий стек
- Версия проекта: `1.1.5`.
- Версия проекта: `1.2.0`.
- Платформа: `.NET 10`, C# preview, nullable reference types, warnings as errors.
- Оркестрация разработки: `.NET Aspire 13` через `src/GmRelay.AppHost`.
- Runtime бота: `Worker Service`, `BackgroundService`, Telegram long polling, Native AOT.
- Runtime бота: `Worker Service`, Telegram long polling, Native AOT.
- Web UI: Blazor Server с Telegram Login Widget.
- База данных: PostgreSQL 17.
- Доступ к данным: Npgsql, Dapper, Dapper.AOT; миграции через DbUp.
- Деплой: Docker Compose, отдельные образы `gmrelay-bot` и `gmrelay-web`.
- Деплой: Docker Compose, образы `gmrelay-bot` и `gmrelay-web`.
## Основные возможности
- Создание пачки игровых сессий одной командой `/newsession` с несколькими строками `Время:`.
- Запись игроков на конкретные даты через inline-кнопки в Telegram.
- Опциональный лимит мест через строку `Мест:` при создании сессии.
- Интерактивная запись игроков на конкретные даты через inline-кнопки Telegram.
- Лист ожидания: если основной состав заполнен, новые игроки не переполняют сессию, а попадают в очередь.
- Повышение первого игрока из листа ожидания кнопкой GM в Telegram или Web Dashboard.
- Автоматическое создание Telegram forum topic для пачки игр, если группа является форумом.
- Отмена отдельной сессии ГМом из основного сообщения расписания.
- Удаление сессий ГМом через список `/listsessions`.
- Перенос сессии через кнопку ГМа и голосование участников.
- RSVP-подтверждение за 24 часа до игры.
- Отмена отдельной сессии GM из основного сообщения расписания.
- Управление сессиями через `/listsessions` с отображением мест и очереди ожидания.
- Перенос сессии через кнопку GM и голосование активных участников.
- RSVP-подтверждение за 24 часа до игры только для основного состава.
- Отправка ссылки на подключение за 5 минут до подтверждённой игры.
- Экспорт будущих запланированных сессий в `.ics` через `/exportcalendar`.
- Web-панель для ГМа: список групп, список сессий, редактирование названия, времени и ссылки.
- Web-панель для GM: список групп, список сессий, редактирование названия, времени, ссылки и лимита мест.
## Разделы
- [Быстрый старт](Быстрый-старт) — быстрый локальный запуск и первичная настройка.
- [Руководство ГМа](Руководство-ГМа) — как пользоваться ботом и web-панелью.
- [Быстрый старт](Быстрый-старт) — локальный запуск и первичная настройка.
- [Руководство ГМа](Руководство-ГМа) — формат команд, запись игроков, лимиты, waitlist и переносы.
- [Архитектура](Архитектура) — устройство сервисов и ключевые потоки.
- [Разработка](Разработка) — правила разработки, тесты и добавление фич.
- [Развёртывание](Развёртывание) — Docker Compose, окружение и эксплуатационные заметки.
- [База данных](База-данных) — схема БД, миграции и статусная модель.
## Важные ограничения
- Бот работает через long polling; webhook в текущей архитектуре не используется.
- Время в пользовательских сценариях вводится и отображается как МСК (`UTC+3`), а в базе хранится в UTC.
- Web-доступ ограничен Telegram-пользователями, которые являются ГМом соответствующей группы.
- В Native AOT избегаются reflection-heavy подходы: обработчики регистрируются явно, SQL-маппинг завязан на DTO.
- [Разработка](Разработка) — правила разработки, тесты и локальные команды.
- [Развёртывание](Развёртывание) — Docker Compose, окружение и эксплуатация.
- [База данных](База-данных) — схема БД, миграции и статусная модель.