Перейти к основному содержимому

Планирование

Планирование — движок бронирования. Он отвечает на один вопрос: занят ли ресурс в этот интервал. На нём стоят запись клиента к мастеру, аренда оборудования, групповое занятие, бронь стола и заселение.

Календарь — визуальный интерфейс поверх этого движка. Сам движок отвечает за правила и целостность данных.

Раздел «Планирование»: сетка ресурсов и броней по времениРаздел «Планирование»: сетка ресурсов и броней по времени
Расписание ресурсов: занятость видна по всем мастерам и залам сразу

Ресурс

Ресурс — то, что бронируется:

ТипЧто этоПример
СотрудникЧеловекМастер, врач, тренер
МестоПосадочное местоКресло, столик, кабинет
ЮнитОбособленная единицаНомер, коворкинг-место
ОборудованиеТехника и инвентарьИнструмент, велосипед, аппарат
Список ресурсов с типом, вместимостью и графиком работыСписок ресурсов с типом, вместимостью и графиком работы
Ресурсы: график, вместимость, буфер и услуги, которые они оказывают

У ресурса настраиваются:

  • Вместимость — 1 для индивидуальной работы, N для группового занятия;
  • Рабочие окна — по дням недели: когда ресурс вообще доступен;
  • Буфер — минуты между бронями на уборку и подготовку;
  • Минимальная длительность брони;
  • Навыки и услуги — что этот ресурс умеет. Пустой список означает «универсален»; как только появилась хоть одна услуга, записать можно только на неё.

Бронь

Бронь — интервал на ресурсе со статусом: создана, подтверждена, состоялась, клиент не пришёл, отменена.

Источник фиксируется отдельно: завёл сотрудник, клиент записался сам по публичной ссылке или бронь пришла из интеграции — так видно, откуда идёт поток.

Бронь может ссылаться на клиента, услугу каталога, сделку и объект обслуживания, но ничего из этого не обязательно: минимальная бронь — ресурс и интервал.

Мультиресурсные брони. Одна запись занимает несколько ресурсов сразу — мастера и кресло, тренера и зал. Занятость проверяется по всем.

Групповые занятия. Если вместимость больше единицы, к брони добавляются участники со статусами: записан, пришёл, не пришёл, отменил.

Повторы

Регулярные записи описываются правилом: занятие каждый вторник, ТО раз в квартал. Брони генерируются на горизонт вперёд, серия ограничивается датой окончания. Изменение одной брони серии не ломает остальные.

Тарифы

Цена брони считается по тарифам: за час, за сутки или фиксированная. Тариф привязывается к ресурсу, к услуге или к их паре, сезонный — ограничивается датами.

Когда подходит несколько тарифов, выбирается самый специфичный из действующих, а при равенстве — с наибольшим приоритетом. Это позволяет держать базовый прайс и накрывать его сезонными исключениями, ничего не переписывая.

Абонементы

Пакет визитов или часов продаётся заранее и списывается по мере посещений. У абонемента есть срок действия и правила заморозки. Остаток виден и клиенту, и администратору — спор «сколько у меня осталось» решается за секунду.

Предоплата и неявки

У брони есть депозит со своим состоянием: не требуется, требуется, получен, возвращён, удержан. Удержанный депозит уходит в прочие доходы отдельной операцией, а не растворяется в «потерянных» деньгах.

Прокат

Доска проката: единицы со статусами «свободно», «выдано», «просрочено»Доска проката: единицы со статусами «свободно», «выдано», «просрочено»
Прокат: выдача, возврат и просрочки по каждой единице

Для аренды бронь дополняется выдачей и возвратом. Обе операции атомарны: два сотрудника не выдадут один экземпляр дважды. При возврате депозит возвращается или удерживается, а сама аренда может превратиться в продажу.

Лист ожидания

Если свободных слотов нет, клиент встаёт в лист ожидания на ресурс и интервал. Когда слот освобождается, видно, кому его предложить — и звонок делается по факту, а не по памяти.

Уборка

Для юнитов ведётся состояние: готов, требует уборки, в работе. Задачи создаются автоматически после освобождения и не дают заселить неподготовленный номер.

Связь с другими компонентами