Аладдин Биябангерд
ТекстыРазработка ПО

Брони, которые держатся и в 21:00

Автор:Аладдин БиябангердОпубликовано:5 мин чтения

Софт для площадок ломается вполне определённым образом. В полдень расписание в порядке. В девять на одну комнату приходят две компании, walk-in уже сидит, а касса не сходится с сессиями, которые так и не закрыли.

У таблиц и переписок в WhatsApp нет модели конфликтов — есть только оптимизм. Heselo существует потому, что бронь, живая сессия и оплата — это три состояния одного операционного факта, а не три приложения.

Состояния, которые важны

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

Если этих состояний нет в модели данных, их придумает интерфейс. Операторы «просто перенесут» так, что завтра систему уже не собрать. История на площадке — не приятный бонус: именно ею объясняют кассу.

Корректность важнее эффектности

Мне важны непарадные вещи: пересекающиеся интервалы, защищённые прошлые дни, кассовая смена, которая не смешивается со следующей, и код подтверждения на действия, которые переписывают деньги. Java и Spring Boot — хорошее место для этой логики: конфликт брони проще проверить в сервисе, чем надеяться, что об этом вспомнит frontend.

Продукт, которым реально пользуются, после рваной ночи всё ещё говорит правду. Это и есть планка.