Напиши рабочего телеграм-бота для записи на услугу — так, чтобы файл запустился и записал первого клиента.
Что за бизнес: [БИЗНЕС: массажный кабинет, три мастера, услуги 60 и 90 минут]
Как принимаем записи: [ПРАВИЛА: с 10 до 20, шаг 30 минут, на 14 дней вперёд, один мастер — один клиент в слот, за час до начала отменить нельзя]
Стек: [СТЕК: Python 3.11, aiogram 3.x, SQLite в файле base.db, запуск на VPS через systemd]
Что нужно администратору: [АДМИН: команда со списком записей на завтра, доступна только по моему id]
Функции бота:
1. `/start` — приветствие и кнопки услуг.
2. Выбор услуги → мастера → даты → времени, свободные слоты считаются из базы, занятые не показываются.
3. Подтверждение с итогом и запись в базу.
4. `/my` — свои записи, `/cancel` — отмена с проверкой правила про час.
5. Команда администратора со списком на завтра.
Отдай одним файлом, который можно скопировать и запустить. Токен и id администратора — из переменных
окружения, не в коде.
Отсечка. Не давай фрагменты с «# остальное по аналогии» — мне нужен файл целиком, иначе он не
запустится. Не храни состояние в глобальном словаре: при перезапуске записи потеряются, используй
базу. Не забудь про два одновременных запроса на один слот — покажи, как не допустить двойную запись.
Не оставляй токен в коде даже в примере.
Проверка перед выдачей: пройди по своему коду путь клиента, который записался, отменил и записался
снова на тот же слот. Если слот после отмены не освободился или появилась вторая запись — исправь.