Общая логика: У бота есть база заданий (список мест в городе, где необходимо сделать фото и отправить в чат с ботом) В определённый день недели (вт, чт, сб): Бот проверяет, выполнено ли предыдущее задание пользователем (признак выполнения выставляет администратор вручную), если выполнено - пишет, что задание засчитано. Если признак выполнения не выставлен - пишет, что задание не засчитано. Далее бот выдаёт рандомное задание пользователю из списка (перед этим убеждается, что этим пользователем оно ещё не было выполнено) После того, как бот получает фото (отслеживает по формату файла) - он отправляет его админу по email и складывает в директорию на сервер После этого бот уведомляет пользователя, что задание на обработке. Администратор проверяет, что фото корректное и выставляет (вручную) в базе признак успешно выполненного задания для пользователя Более детальная логика: - приветствие пользователю при подключении "Привет, я помогу вас с квестом в городе Москва*!" - идентификация пользователя (по номеру телефона) - Если пользователь с таким номером уже есть в базе - проверка номера текущего задания для пользователя. Если задание не выполнено - отправляем его пользователю - если задание выполнено (поле - "флаг" в таблице пустое**) и наступил момент оглашения следующего задания (вт, чт, сб), бот пишет "Поздравляем, предыдущее задание засчитано". * - в случае, если бот работает для Москвы ** - флаг выставляется вручную администратором после проверки выполнения задания (если задание выполнено успешно - поле очищается администратором, тем самым сигнализируя боту, что оно было засчитано) если задание НЕ выполнено (есть номер текущего задания) и прошёл момент оглашения следующего задания (вт, чт, сб), бот пишет: "Извините, предыдущее задание не засчитано, переходим к новому заданию" - далее случайный выбор из базы невыполненных заданий для пользователя и бот пишет "Следующее задание: ..." - если таких заданий нет, то пишем "Поздравляем! Вы справились со всеми заданиями. Ожидайте" - когда бот получает фото, он пересылает фото на e-mail с указанием пользователя и текущего задания (id, название) и складывает в папку пользователя на сервере. После этого он отвечает в чате "спасибо, ждите следующее задание." - на любое входящее сообщение, отличное от фото, бот отвечает фразой "Я вас не понял, загружаемый контент отличается от фото в формате JPG, обратитесь к администраторам группы XXX" формат данных пользователей (отдельная таблица под каждый город) city_users =========================== номер телефона список решенных заданий номер текущего задания формат данных заданий (отдельная таблица под каждый город) city_tasks ===================== идентификатор задания название задания текст задания Оплата - 10000 рублей. Крайний срок - 3 июля, 12:00 дня