Общее описание проекта

Необходимо создать Telegram-бота для ведения реестра помытых автомобилей на автомойке. Система должна учитывать данные в разрезе каждого мойщика и даты. Бот предназначен для двух ролей: Мойщик (видит только свои записи) и Администратор (видит все записи и может управлять заказами любого мойщика).

Основные функциональные требования

Роли и права доступа

  • Мойщик: имеет личную панель, может просматривать только свои заказы и добавлять записи только на себя.
  • Администратор: видит заказы всех мойщиков, может создавать заказы на любого исполнителя.

Ограничения

  • Запрещено удалять или редактировать уже начатую запись. Разрешено только вносить пометки в поле "Примечание" в любое время.
  • Все данные сохраняются в единой таблице (Excel .xlsx).

Действия пользователей (сценарий работы)

1. Просмотр заказов

  • Мойщик: имеет возможность просматривать свои заказы за любой выбранный день.
  • Администратор: может просматривать все заказы (всех мойщиков) за любой день.

2. Прием заказа

Интерфейс приема нового заказа включает семь элементов ввода, каждый из которых запускается отдельной кнопкой (поочередно):

  1. Фото 1 (грязный автомобиль): кнопка открывает камеру. После фотографирования фото отображается рядом с кнопкой.
  2. Номер: принимается речью (голосовой ввод) автоматически распознается и вносится в поле.
  3. Марка: принимается речью.
  4. Услуга: принимается речью.
  5. Цена: принимается речью.
  6. Примечание: текстовое поле, заполняется голосом.
  7. Фото 2 (чистый автомобиль): завершающий шаг. После него заказ уходит в архив, и панель возвращается в исходное состояние.

У администратора интерфейс идентичен, но дополнительно присутствует кнопка выбора Исполнителя (кому назначить заказ).

Технические требования

  • Язык разработки: Python
  • Библиотеки: python-telegram-bot, openpyxl (для работы с Excel)
  • Система хранения: файл Excel (.xlsx) с общей таблицей
  • Распознавание голоса: получение текста из голосовых сообщений пользователя (встроенными средствами Telegram или сторонним API)

Дополнительно

Требуется консоль администрирования: регистрация мойщиков и администраторов (например, через команду /start), либо идентификация через список доступа.