Барбершоп на четырёх мастеров просил перевести запись клиентов в бота.
До этого писали администратору в личку, он сверялся с бумажным журналом и называл время.
Мастеров путал, пару раз ставил двоих на один час и разруливал уже в зале.
Неявки шли фоном - человек записывался за неделю и не приходил, отменить не считал нужным, окно простаивало.
Ночные сообщения администратор видел только утром, часть людей за это время уходила в соседний барбершоп.
Задача была снять с него ручную сверку и убрать пустые окна в сетке.
Бот на Python и aiogram 3, база PostgreSQL, расписание живёт на своём сервере - сторонний календарь не подключали.
Запись идёт шагами - услуга, мастер, день, свободное время. Можно начать с мастера, если человек ходит к своему.
Слоты считаются от длительности услуги: стрижка сорок минут, борода двадцать, комплекс час. Окно, в которое услуга не влезает, бот не покажет.
Место, где такие боты обычно ломаются - параллельная запись. Двое держат один слот и оба жмут подтвердить.
Слот блокируется на время оформления и перепроверяется прямо перед записью, второму бот предлагает соседнее время.
Напоминания за сутки и за два часа, в напоминании кнопки перенести и отменить.
Отмена возвращает слот в сетку сразу, то-есть его тут же видят остальные.
Мастеру - свой кабинет: расписание на день, перерывы и отпуск закрываются в пару нажатий, закрытое время исчезает из выдачи.
Администратору - общая сетка на неделю, ручная запись клиента без бота, чёрный список по неявкам.
Выгрузка загрузки за неделю в Excel - записи по каждому мастеру, отмены, неявки.
Часовой пояс зафиксирован по салону, иначе клиент из другого региона видит сдвинутое время.
Запись целиком ушла в бота, администратор перестал работать диспетчером и занимается залом.
Пустых окон стало меньше - отмена возвращает время в сетку, и его успевают занять в тот же день.
Неявки просели после напоминания за два часа, по словам заказчика примерно вдвое за первый месяц.
Ночные записи оформляются сами, утром мастер открывает готовый день.
У клиента остались исходники, админка и доступ к серверу, мастер и услуга добавляются без разработчика.
Через пару недель после запуска прикрутил бонус за пятую стрижку и повтор записи в один клик к тому же мастеру.