- Команда /start возвращает описание бота и меню из двух кнопок, “Создать опрос” и “Статистика”
- Опрос - сообщение с вопросом и вариантами ответа в виде InlineKeyboardMarkup
- Команда /start {quest_id}, например, /start 123. Ответ - опрос
- После нажатия на кнопку в опросе текст сообщения должен заменяться на "ответ отправлен". При повторном вызове команды выводится ошибка, что проходить опрос нужно единожды.
- При нажатии на создать опрос - многоуровневый диалог, в котором поступает информация от пользователя - вопрос и варианты ответов. Реализовано с помощью finite state machine (FSM). Вариантов ответа от 2 до 6. После создания опроса пользователь получает ссылку на опрос вида: https://t.me/{bot_nickname}?start={quest_id}
- При нажатии на кнопку статистика - меню для выбора опроса с пагинацией с помощью InlineKeyboardMarkup. При нажатии на кнопку - отправить сообщение со статистикой по опросу.
aiogram
postgresql
tortoise-orm