Telegram-бот выдачи топлива
Тот же рабочий процесс, что и в приложении для планшетов — но в интерфейсе Telegram
Бот работает прямо сейчас — можно открыть и пройти полный цикл смены.
PIN для входа: 1234.
Что умеет
Полный цикл работы водителя топливозаправщика: вход по PIN, открытие смены с фиксацией
остатка, выдача топлива с поиском техники по госномеру, приёмка, закрытие смены со сводкой.
Остаток в цистерне пересчитывается после каждой операции.
Выдать топливо
→
поиск ТС по номеру
→
объём
→
получатель
→
подтверждение
На каждом шаге — ветвление: неверный формат числа, объём больше остатка в цистерне,
по запросу ничего не найдено, смену закрыли, пока водитель вводил данные.
Как устроено
01
Telegram не помнит, где находится пользователь
Каждое сообщение приходит само по себе, поэтому шаг диалога хранится явно — конечным автоматом. Одно и то же «120» означает остаток при старте смены, объём при выдаче или объём при приёмке, в зависимости от текущего шага.
02
Кнопки и текст — разные источники ввода
Нажатия inline-кнопок приходят отдельным типом события и отвечают за навигацию, текстовые сообщения дают данные. Кнопка ограничена 64 байтами полезной нагрузки, поэтому в ней едет только идентификатор, а введённые значения хранятся в состоянии диалога.
03
Бизнес-правила отделены от мессенджера
Проверки объёма, пересчёт остатка и правила смены не знают про Telegram вообще. За счёт этого они покрыты обычными тестами, а сам бот можно перенести на другой интерфейс, не переписывая логику.
Технологии