Игровые сессии в IZI
Игровые сессии в IZI
Заголовок раздела «Игровые сессии в IZI»Сессия — это основная единица тарификации в компьютерном клубе IZI: интервал времени, привязанный к игроку, ПК и тарифу — основа всего, что зарабатывает клуб. Всё, что происходит на ПК — оплата, смена устройства, автопродление, возврат — отслеживается на уровне сессии. Аналитика клуба строится из данных сессий: продолжительность, выручка за сессию, ARPU. Понимание жизненного цикла сессии помогает операторам быстро разбираться в нестандартных ситуациях и правильно настраивать тарифы.
Что такое сессия
Заголовок раздела «Что такое сессия»Сессия в IZI — это агрегированная сущность: хранит, когда игрок сел (plannedStartAt / actualStartAt), когда ушёл (actualEndAt), каким ПК пользовался (SessionDevice) и какой тариф действовал в каждый момент (SessionPlayerTariff).
Жизненный цикл сессии имеет четыре статуса:
| Статус | Значение | Когда возникает |
|---|---|---|
| PENDING | Сессия создана, старт запланирован на будущее | Оператор создал заблаговременное бронирование |
| ACTIVE | Запланированное время старта наступило, игрок ещё не нажал «Старт» | Автопереход по времени |
| STARTED | Игрок активен, ПК разблокирован, время идёт | После нажатия «Старт» |
| ENDED | Сессия завершена, чек сформирован | Автоматически по тарифу или ручное завершение |
Отдельный статус CANCELLED означает отмену до фактического старта — начисление не производится, тариф возвращается на баланс согласно политике возврата.
Переходы между статусами строго определены: из PENDING можно перейти в STARTED, ENDED или CANCELLED; из STARTED — только в ENDED. Обратных переходов нет.
Как запускается сессия
Заголовок раздела «Как запускается сессия»В IZI есть три канала создания и запуска сессий. Механика одинакова; различается, кто инициирует операцию.
Оператор через CRM. Самый распространённый сценарий. Оператор открывает раздел «Зал», выбирает ПК, привязывает игрока, выбирает тариф из оплаченных заказов. CRM создаёт сессию (createSession) и запускает её (startSession). ПК получает команду на разблокировку через MQTT-брокер. Весь процесс занимает несколько кликов и секунды.
Самозапуск через мобильное приложение. Игрок со смартфона выбирает клуб, покупает тариф, выбирает свободный ПК и нажимает «Играть». Сессия создаётся и запускается без участия оператора. Права доступа проверяются на уровне API: игрок может управлять только своей сессией (assertSamePlayer).
Режим постоплаты (открытая сессия). В клубах с постоплатой сессии создаются в режиме OpenEnded: игрок садится, предоплата не нужна. OPEN_ENDED означает, что расчёт производится при завершении сессии — IZI выставляет счёт на основе фактически проведённого времени. Автопродление в этом режиме не нужно; система управляет продлениями автоматически.
Тарификация: почасовая, мультипасс, подписка
Заголовок раздела «Тарификация: почасовая, мультипасс, подписка»Каждая сессия привязана к одному или нескольким тарифным сегментам (SessionPlayerTariff). У каждого сегмента есть точные временные границы (plannedStartAt / plannedEndAt) и ссылка на купленный тариф (playerTariffId).
Три основные модели тарификации:
- Почасовой тариф. Игрок покупает N часов. Сессия закрывается при исчерпании тарифа, если не включено автопродление.
- Мультипасс. Пакет часов с условием истечения (например, 10 часов в течение 30 дней). Один мультипасс может покрывать несколько сессий — каждая сессия расходует общий пул.
- Подписка / безлимит. Тариф с расписанием использования (например, ежедневный безлимит с 10:00 до 22:00). Сессия активна в рамках расписания; выход за его пределы переводит ПК в режим ожидания.
Подробнее о настройке каждого типа — в разделе Тарифы и ценообразование.
При смене тарифа во время сессии (автопродление или ручное продление) создаётся новый сегмент SessionPlayerTariff с новыми временными границами. Тарификация считается по сегментам независимо — итоговый чек суммирует все сегменты.
Управление активной сессией
Заголовок раздела «Управление активной сессией»После запуска оператор видит все активные сессии в режиме реального времени в разделе «Зал». Доступные действия:
Продление без перерыва. Оператор добавляет тариф к активной сессии через CRM — создаётся новый сегмент, ПК не перезагружается. Игрок продолжает играть без перебоев.
Автопродление. Если у игрока включено автопродление и на балансе есть совместимый тариф, система автоматически добавляет сегмент при истечении текущего. Оператор видит в зале, что сессия продлилась без прерывания игрока.
Перевод на другой ПК. Операция switchSessionDevice — игрок меняет место, сессия продолжается. IZI закрывает привязку к старому ПК (actualEndAt = now), открывает к новому. Оба ПК получают команду на reconcile. Счётчик времени не прерывается.
Завершение. Ручное завершение доступно оператору (разрешение SessionEdit) и игроку через приложение. При завершении IZI записывает actualEndAt, формирует итоговый чек и отправляет событие session_ended для аналитики и других модулей.
Отмена. Доступна только для сессий, которые не были запущены (actualStartAt = null). Требует разрешения SessionDelete. При отмене тариф возвращается на баланс согласно политике возврата тарифа.
Закрытие сессии
Заголовок раздела «Закрытие сессии»Сессии закрываются двумя способами: автоматически или вручную.
Автозакрытие происходит, когда тариф исчерпан (coverageUntilAt < now), а автопродление выключено или не нашло подходящий тариф. Система записывает actualEndAt, ПК переходит в режим ожидания, а CRM уведомляет оператора через подписку в реальном времени.
Ручное закрытие — оператор или игрок инициирует endSession. IZI проверяет статус (сессия не должна быть в ENDED / CANCELLED), записывает время окончания и причину (endedReason: ManualByAdmin или ManualByPlayer), формирует итоговый чек по всем сегментам.
Чек включает:
- все тарифные сегменты с фактическими временными границами
- суммы по сегментам с учётом зонального ценообразования
- вычеты бонусов, если игрок частично оплатил бонусами
- итоговую денежную сумму
Возвраты после закрытия обрабатываются через заказ — политика возврата задаётся на уровне тарифа отдельно для каждого продукта.
Сессии и аналитика
Заголовок раздела «Сессии и аналитика»Каждая сессия генерирует набор метрик для аналитики клуба.
Продолжительность сессии — разница между effectiveEndAt и effectiveStartAt. IZI хранит оба значения как вычисляемые поля представления (sessions_view), поэтому продолжительность всегда консистентна даже при нестандартном закрытии сессии.
Выручка за сессию — сумма всех транзакций тарификации, привязанных к сессии. Позволяет вычислить среднюю выручку за сессию как аналитическую метрику, отдельно от средней выручки за визит.
ARPU за сессию — выручка за сессию, делённая на количество уникальных сессий за период. Более точная метрика, чем ARPU за визит, для клубов, где один игрок играет несколько раз в день.
Загрузка зала — отношение часов сессий к доступным часам ПК за период. Рассчитывается из actualStartAt / actualEndAt всех сессий в статусе STARTED/ENDED на каждом устройстве.
Покрытие тарифа (coverageStatus) — операционная метрика для оператора: показывает для каждой активной сессии, насколько тариф покрывает оставшееся время. Помогает проактивно предложить продление до того, как сессия закроется по истечению.
Историческая аналитика сессий доступна в разделе «Отчёт по сессиям» в CRM, с фильтрацией по ПК, игроку, тарифу и дате; доступен экспорт для внешних инструментов.
Смотрите также: Тарифы и ценообразование · Зал в реальном времени · Бонус при пополнении · Что такое IZI · Мобильное приложение игрока
Механика сессий описана на основе продакшен-кода IZI X API (пакет sessions). Конкретные шаги в UI могут незначительно отличаться в зависимости от версии CRM и конфигурации клуба.
Смотрите также
Заголовок раздела «Смотрите также»Частые вопросы
Что такое игровая сессия в IZI?
Сессия — это единица учёта игрового времени: привязана к конкретному игроку, ПК и тарифу. Вся тарификация клуба считается посессионно — пока сессия открыта, время идёт; когда закрывается — формируется чек. У одного игрока может быть только одна активная сессия на конкретном ПК в один момент времени.
Чем сессия отличается от заказа?
Заказ — финансовый документ: список купленных тарифов и сумма к оплате. Сессия — процесс игры: когда ПК запустили, сколько времени фактически прошло, на каком устройстве. Один заказ может породить несколько сессий (купили 3 часа, играли в два захода), а одна сессия всегда привязана ровно к одному заказу.
Как запустить сессию из CRM?
В разделе «Зал» находите ПК, выбираете игрока, выбираете тариф из купленных заказов и нажимаете «Старт». CRM создаёт сессию в статусе PENDING, затем сразу переводит в STARTED — ПК разблокируется. Весь процесс занимает секунды; никаких ручных действий на ПК не требуется.
Может ли игрок самостоятельно запустить сессию через приложение?
Да. Через мобильное приложение IZI игрок выбирает клуб, покупает тариф и запускает сессию самостоятельно — без участия администратора. ПК разблокируется после подтверждения. Этот режим называется самозапуском; в клубах с постоплатой сессия стартует сразу, оплата собирается при выходе.
Что происходит, когда оплаченное время заканчивается?
Система проверяет покрытие тарифа (coverageStatus). Если включено автопродление, ПК продолжает работать, а система автоматически продлевает сессию за счёт следующего доступного тарифа игрока. Если автопродление выключено и тариф истёк, ПК переходит в режим предупреждения, и кассир видит это в виде зала.
Может ли игрок продлить сессию, не вставая с места?
Да, через автопродление. Если у игрока есть совместимый тариф на балансе и автопродление включено, переключение тарифа происходит автоматически при истечении текущего — без перезагрузки. Оператор также может вручную добавить тариф к активной сессии из CRM, не прерывая игру.
Что такое пауза сессии и зачем она нужна?
В IZI пауза представлена статусом ACTIVE — сессия существует с запланированным временем начала, которое уже наступило, но игрок ещё не нажал «Старт». После нажатия «Старт» сессия переходит в STARTED и начинается фактический отсчёт времени.
Можно ли перевести сессию на другой ПК?
Да, через операцию switchSessionDevice. Оператор в CRM или игрок через приложение указывает новый ПК — IZI закрывает привязку к старому устройству и открывает к новому в рамках той же сессии. Счётчик времени не прерывается, тариф остаётся прежним.
Как рассчитывается стоимость при смене тарифа во время сессии?
Каждый тарифный сегмент внутри сессии хранится отдельно (SessionPlayerTariff) с точными временными границами. Тарификация считается по сегментам независимо: первые 2 часа по тарифу А, следующий час по тарифу Б. Итоговый чек — сумма всех сегментов.
Что видит оператор, если ПК завис или перестал отвечать?
В разделе «Зал» у каждого ПК отображается coverageStatus сессии. Если ПК перестаёт выходить на связь через MQTT, его статус устройства меняется на «не отвечает». Оператор видит это сразу в виде цветового индикатора без обновления страницы.
Можно ли отменить сессию?
Да, но только до фактического старта (пока сессия в статусе PENDING или ACTIVE, то есть actualStartAt равен null). После того как игрок нажал «Старт», отмена недоступна — можно только завершить сессию. Для отмены нужно разрешение SessionDelete в CRM.
Как оформить возврат по сессии?
Возвраты обрабатываются через заказ, привязанный к сессии. Политика возврата задаётся на уровне тарифа: «вернуть остаток на бонусный баланс», «сжечь остаток» или «вернуть деньгами». Полный возврат доступен, если тариф не использован или использован частично в соответствии с политикой.
Есть ли суточный лимит времени на ПК?
Технического лимита на уровне сессии нет — сессия работает, пока тариф покрывает время или активно автопродление. Ограничения задаются через расписание тарифа (например, ночной тариф доступен только с 23:00 до 07:00) или через лимиты зоны клуба. Отдельного суточного счётчика в IZI нет.