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

Бронирование: hold, оплата и календарь

Бронь создаётся только после атомарной проверки интервала и подтверждённой оплаты. Hold освобождается по тайм-ауту, а позднее платёжное событие не создаёт конфликт.

Последовательность

Основной и альтернативный потоки

Схема показывает только ключевые события; детали ошибок перечислены ниже.

На узком экране прокручивается по горизонтали
Отрисовываем схему…
Все действия на портале демонстрационные. Внешние системы не вызываются.

Состояния

Машина состояний

Недопустимые переходы должны блокироваться проверками, а не только интерфейсом.

На узком экране прокручивается по горизонтали
Отрисовываем схему…
Неопределённый результат команды не должен превращаться в успех.

Шаги процесса

1
Выбор интервала
Пользователь выбирает дату, начало и длительность; система строит слоты с шагом и буфером.
Актор: Водитель
2
Проверка конфликтов
Проверяются подтверждённые брони, технические окна и доступность порта.
Актор: Backend
3
Создание hold
Слот временно удерживается, возвращается срок действия и цена.
Актор: Backend
4
Демонстрационная оплата
Пользователь видит успех, отказ или ожидание; реальный платёж не выполняется.
Актор: Водитель
5
Атомарное подтверждение
При активном hold и свободном слоте создаются бронь, платёж и проводка.
Актор: Backend
6
Позднее событие
Если слот уже занят, создаётся возврат/сверка, а не вторая бронь.
Актор: Backend

Правила

  • Один интервал порта — одна подтверждённая бронь.
  • Технический буфер 15 минут — рабочее допущение.
  • Hold не блокирует слот бесконечно.
  • Возврат из платёжной страницы не считается подтверждением.
  • До D02 автоматическое удержание за неявку выключено.

Отказы и граничные случаи

СлучайПоведениеДенежный эффектТест
Две заявки одновременноОдна подтверждается, вторая получает SLOT_CONFLICT и не теряет средства.Нет списания у проигравшего.AT-02
Hold истёк до webhookСлот освобождён; поздний платёж уходит на возврат/сверку.Возврат или сверка, без второй брони.AT-02, AT-04
Оплата отклоненаБронь не создаётся, hold остаётся активным до истечения.Нет проводки.AT-03
Следующий потокПлатежи: пополнение, резервы и возвраты