• v1.8.0 0218890a7a

    Release 1.8.0: шаблоны кампаний и повторяющиеся расписания
    Deploy Telegram Bot / build-and-push (push) Successful in 3m49s
    Deploy Telegram Bot / deploy (push) Successful in 10s
    Stable

    Toutsu released this 2026-04-28 10:07:07 +03:00 | 358 commits to main since this release

    🚀 Версия 1.0 — Telegram Bot + Mini App Dashboard

    Этот релиз закрывает следующую задачу этапа «Версия 1.0 — Telegram Bot + Mini App Dashboard»: GM теперь может быстро создавать повторяющиеся расписания и сохранять типовые кампании как шаблоны. Вместо ручного перечисления дат достаточно указать первую игру, количество сессий и шаг расписания, а для частых форматов — выбрать готовый шаблон в Web Dashboard.

    Закрытые issues

    • #16 — feat: добавить шаблоны кампаний и быстрое создание повторяющихся расписаний: /newsession получил быстрые поля повторения, Web Dashboard получил CRUD для шаблонов кампаний и запуск нового batch-расписания из шаблона с единой проверкой доступа owner/co-GM.

    🧩 Что вошло в релиз

    • команда /newsession теперь поддерживает строки Игр:, Сессий: или Повторов: для количества игр и Интервал: или Шаг: для шага в днях;
    • если указан счётчик повторений без интервала, Telegram-сценарий использует недельный шаг по умолчанию;
    • парсер проверяет границы повторений 1-52 и интервала 1-365 дней, а /help показывает новый быстрый формат;
    • добавлен BatchSchedulePlanner.BuildRecurringSchedule, который строит повторяющиеся даты из первой сессии, количества игр и интервала;
    • в Web Dashboard на странице группы появился блок «Шаблоны кампаний»: можно сохранить название, заголовок, ссылку, количество сессий, интервал, режим уведомлений и опциональный лимит мест;
    • шаблон можно сразу запустить от выбранной первой даты: создаётся новый batch_id, набор будущих sessions, Telegram-сообщение расписания и пустой список участников;
    • доступ к шаблонам проходит через AuthorizedSessionService: owner и co-GM видят и используют шаблоны своих групп, чужие группы остаются закрыты;
    • добавлены операции хранения шаблонов в ISessionStore/SessionService, включая создание, список, удаление и запуск batch из шаблона;
    • база данных расширена миграцией V010__add_campaign_templates.sql с таблицей campaign_templates и уникальным именем шаблона в пределах группы;
    • README и wiki обновлены под 1.8.0, включая Telegram-формат повторов, Web-шаблоны, миграцию V010 и актуальные версии;
    • добавлены тесты для парсинга повторяющегося /newsession, построения расписаний, авторизации шаблонов и запуска batch из шаблона.

    🛡 Что это даёт

    • GM может заводить типовые кампании один раз и дальше создавать новые расписания за несколько кликов;
    • повторяющиеся кампании больше не требуют ручного ввода каждой даты в Telegram;
    • Telegram и Web используют одинаковые правила построения расписания, ограничения и модель доступа;
    • новый batch из шаблона стартует чистым: с собственным batch_id, новыми сессиями и без переноса старых участников;
    • существующие сценарии bulk-создания и клонирования расписаний остаются совместимыми.

    📦 Версия и деплой

    • версия проекта обновлена до 1.8.0 в Directory.Build.props, compose.yaml, README, Web design system, wiki и Gitea Actions workflow;
    • Docker-образы и deploy-конфигурация используют тег 1.8.0;
    • локально пройдены dotnet test tests/GmRelay.Bot.Tests/GmRelay.Bot.Tests.csproj --collect:"XPlat Code Coverage" и dotnet build GM-Relay.slnx -c Release;
    • Gitea Actions run #45 успешно собрал, опубликовал и задеплоил bot/web образы.
    Downloads