Нужен инструмент, где клиент сам покупает абонемент на фиксированное количество занятий, затем открывает календарь и бронирует конкретное время. При подтверждении брони система должна сама вычесть один визит из остатка по абонементу — без участия администратора — и сразу пересчитать, сколько мест ещё свободно в этом слоте. Если у клиента закончились оплаченные визиты, система должна не пускать его дальше без покупки нового абонемента, а не полагаться на то, что кто-то это заметит вручную.
Второй важный момент — вместимость зала. У каждого временного слота должен быть свой лимит участников, заданный из соображений безопасности на стене, и как только лимит исчерпан, слот закрывается для новых записей автоматически. Отдельно нужна панель для персонала: что происходит сегодня, сколько человек в каждом слоте, у кого абонемент вот-вот сгорит, и возможность вручную отменить или перенести запись, если клиент предупредил заранее.
Кратко, что должно быть в результате:
1) календарь с реальным количеством свободных мест по каждому времени;
2) привязка абонемента к аккаунту клиента с автоматическим списанием визита;
3) жёсткий лимит участников на слот и блокировка записи сверх лимита;
4) панель администратора с расписанием, статусом абонементов и ручными правками;
5) корректная работа с телефона, так как большая часть записей идёт именно оттуда.
Жду примеры похожих реализаций, предложения по технологиям и оценку сроков и бюджета.