Тематические события в кейсах — поинты за выпадения, баннер на главной кейсов, лидерборд, призовые места. В коде есть, в проде сейчас не запущено.
Сценарии
adminне прогонял
0 (подготовка). Создание тестового ивента в админке
- Filament → CaseEvents → New.
- Название «Брат-тест ивент», даты — сегодня и +3 дня.
- Привязываю 3 активных кейса. Настраиваю — за каждое открытие любого из них +1 поинт.
- Задаю призовые места: 1 место — 1000₽, 2-3 — по 500₽, 4-10 — по 100₽.
- Активирую ивент.
Что проверяю: ивент появляется в БД, баннер появляется на /cases, поля валидируются, нельзя задать невалидные даты.
Скрины: экран создания, экран /cases с баннером.
brat-test-ev-user1..5не прогонял
1. Каждый юзер открывает разное количество кейсов из пула
- user1: открывает 10 кейсов → должно быть 10 поинтов.
- user2: открывает 7 кейсов.
- user3: 5 кейсов.
- user4: 2 кейса.
- user5: 1 кейс.
Что проверяю: поинты в case_event_points начисляются ровно по количеству открытий, не дублируются, не теряются.
Скрины: состояние case_event_points в админке после прогона.
brat-test-ev-user1не прогонял
2. Лидерборд — публичный экран, актуальные позиции
- После прогона сценария 1 открываю экран лидерборда.
- Проверяю что юзеры идут в правильном порядке: user1 (10) — user2 (7) — user3 (5) — user4 (2) — user5 (1).
- Каждый видит свою позицию выделенной.
Что проверяю: сортировка корректна, видна моя позиция, отображаются призовые места (1000₽ за 1 место и т.д.).
Скрины: лидерборд глазами user1 (он же 1 место), глазами user5 (10 место — но призовое).
admin → user1не прогонял
3. Завершение ивента и начисление призов
- В админке принудительно завершаю ивент (или подменяю end_at на «час назад»).
- Запускаю команду завершения ивента (если есть) или жду крон-задачу.
- Проверяю что призы начислились: user1 → +1000₽ на основной, user2-3 → +500₽, user4-5 → +100₽.
Что проверяю: в transactions появляются записи с правильным reference на ивент, балансы юзеров изменились на нужные суммы, повторное начисление не происходит.
Скрины: баланс user1 до и после, transactions с пометкой «приз ивента».
brat-test-ev-user6 (новый, поздно зашёл)не прогонял
4. Поздно вступивший — успевает попасть в призы за оставшиеся часы
- Создаю user6 в последние сутки ивента.
- Открываю 20 кейсов залпом → +20 поинтов, должен обогнать user1 (10).
Что проверяю: ивент позволяет новым участникам вступить в любой момент, поинты начисляются с того момента когда они начали открывать.
Скрины: лидерборд после, позиция user6 первая.
brat-test-ev-user1не прогонял
5. Открытие кейса вне пула ивента — поинты НЕ начисляются
- Открываю кейс, который не привязан к ивенту.
- Проверяю что в case_event_points не появилась новая запись.
Что проверяю: привязка ивента к конкретным кейсам соблюдается, не «всё подряд за поинт».
Скрины: открытие чужого кейса + screenshot БД до/после.