Задача
Необходимо разработать Telegram-бота для организации взаимодействия заказчиков и исполнителей. Бот должен выступать в роли гаранта сделки: резервировать средства заказчика на депозите и переводить их исполнителю только после подтверждения выполнения через уникальный код, отправленный по электронной почте.
Функциональность бота
1. Экран приветствия и выбора роли
При первом запуске пользователю предлагается выбрать один из статусов: «Заказчик» или «Исполнитель». Роль закрепляется за пользователем и может быть изменена.
2. Сценарий для Заказчика
- Оформляет заказ, указывая все необходимые параметры.
- Осуществляет предоплату. Средства списываются с баланса заказчика и резервируются на внутреннем депозите бота.
- После того как Исполнитель взял заказ, заказчик утверждает кандидатуру.
- Получает уведомление о завершении заказа (с предоставлением ссылки на объявление) только после успешной проверки кода.
3. Сценарий для Исполнителя
- Получает уведомление о новом заказе, может откликнуться на него.
- После утверждения заказчиком и выполнения работы нажимает кнопку «Сдать заказ».
- Для получения оплаты необходимо переслать боту письмо с кодом подтверждения, заново высланное на email исполнителя.
- Если код корректен, уникальный номер подтверждения записывается в базу данных (проверка на отсутствие дубликатов). Деньги с депозита перечисляются на баланс исполнителя.
4. Подтверждение выполнения
- При нажатии кнопки «Сдать заказ» бот инициирует отправку письма с кодом на email исполнителя.
- Бот автоматически обрабатывает письма через интеграцию с почтовым протоколом (IMAP/POP3) и отправленный набор данных перепроверяется.
- В случае провала верификации заказа, средства возвращаются заказчику.
Дополнительные требования
- Убедиться, что код полностью и хорошо прокомментирован на русском языке.
- Предоставить инструкцию по настройке и использованию (мануал).
- Обязательно осуществить деплой на хостинг.
- Реализовать защиту от повторного использования подтверждающих кодов.