Беру такие проекты часто: конному клубу нужна не просто форма записи на сайте, а расписание, которое понимает, что лошадь — не переговорная комната и не может стоять в календаре без пауз между клиентами. Обычный конструктор записи такие вещи не умеет: он сверяет только занятость инструктора, а на лошадь смотрит как на ресурс без ограничений. Итог предсказуем — два занятия подряд на одной лошади, животное к вечеру измотано, а претензии получает администратор клуба, хотя причина в самой системе записи.
Делаю так: у каждой лошади в базе — собственный параметр времени восстановления, зависящий от типа занятия. Спокойный шаг и рысь с новичком требуют меньше паузы, чем работа галопом с опытным всадником, поэтому единого таймера на всех лошадей я не ставлю — считаю отдельно для каждой. Клиент на сайте выбирает уровень подготовки, новичок или опытный всадник, и уже на этом шаге система показывает только тех лошадей и те интервалы времени, которые физически доступны с учётом отдыха — забронировать занятого или уставшего коня просто нельзя, такой вариант не появится в списке.
С точки зрения клиента процесс укладывается в четыре шага: уровень, лошадь, инструктор, время. Всю сложность — конфликты расписания, буферы восстановления, синхронизацию с графиком инструкторов — система берёт на себя.
Что делаю в рамках проекта:
— расчёт буфера отдыха индивидуально по лошади и типу нагрузки;
— фильтрация выбора по уровню всадника;
— защита от двойного бронирования лошади и инструктора;
— панель администратора для клуба — без обращения к разработчику при каждом изменении;
— уведомления и подтверждения записи для клиента.
Делаю так: у каждой лошади в базе — собственный параметр времени восстановления, зависящий от типа занятия. Спокойный шаг и рысь с новичком требуют меньше паузы, чем работа галопом с опытным всадником, поэтому единого таймера на всех лошадей я не ставлю — считаю отдельно для каждой. Клиент на сайте выбирает уровень подготовки, новичок или опытный всадник, и уже на этом шаге система показывает только тех лошадей и те интервалы времени, которые физически доступны с учётом отдыха — забронировать занятого или уставшего коня просто нельзя, такой вариант не появится в списке.
С точки зрения клиента процесс укладывается в четыре шага: уровень, лошадь, инструктор, время. Всю сложность — конфликты расписания, буферы восстановления, синхронизацию с графиком инструкторов — система берёт на себя.
Что делаю в рамках проекта:
— расчёт буфера отдыха индивидуально по лошади и типу нагрузки;
— фильтрация выбора по уровню всадника;
— защита от двойного бронирования лошади и инструктора;
— панель администратора для клуба — без обращения к разработчику при каждом изменении;
— уведомления и подтверждения записи для клиента.