## 1. **Основной функционал** 1. **Запуск бота** - Реализовать команду `/start` с приветственным сообщением: ``` Привет! Я бот сервиса "НаСвязи". Помогу вам создать QR-код (для автомобиля, питомца, входной двери и т.д.). ``` 2. **Выбор объекта** - Использовать **replyKeyboardMarkup** для отображения кнопок: - Автомобиль - Питомец - Дверь квартиры - Стол в ресторане - Другое - Обработать выбор пользователя и переход к следующему шагу. 3. **Ввод названия QR-кода** - Запросить название QR-кода с валидацией (минимум 2 символа). - Реализовать повторный запрос при неверном вводе. 4. **Настройка действий** - Использовать **replyKeyboardMarkup** для выбора действий: - Отправить сообщение - Показать номер телефона - Прикрепить геопозицию - Обработать выбор пользователя и сохранить выбранные действия. 5. **Генерация QR-кода** - Создать функционал генерации QR-кода с указанным названием и действиями. - Отправить изображение QR-кода пользователю. 6. **Инструкции по размещению** - Отправить рекомендации по размещению в зависимости от выбранного объекта. - Добавить кнопку с **keyboardButtonUrl** для перехода на страницу доната: ``` Сделайте НаСвязи удобнее. Будем рады вашей поддержке: [https://hereconnect.condev.ru/donate](https://hereconnect.condev.ru/donate) ``` --- ## 2. **Уведомления** 1. **Обработка сообщений через QR-код** - Получать данные о сообщении, отправленном через QR-код. - Отправлять уведомление пользователю: ``` Новое сообщение для QR-кода "Моя машина": "Ваш автомобиль мешает проезду." ``` 2. **Отображение действий через QR-код** - Обрабатывать действие "Показать номер телефона" и фиксировать запрос: ``` QR-код "Моя машина": номер телефона владельца показан. ``` --- ## 3. **Управление QR-кодами** 1. **Просмотр списка QR-кодов** - Отправить список QR-кодов пользователя в виде кнопок: ``` Вот ваши QR-коды: [Моя машина] [Ошейник собаки] ``` - Реализовать выбор QR-кода для управления. 2. **Редактирование QR-кода** - Добавить возможность изменить название QR-кода. - Реализовать выбор доступных действий для редактирования. 3. **Удаление QR-кода** - Подтвердить удаление перед выполнением. - Удалить QR-код и уведомить пользователя: ``` QR-код "Моя машина" успешно удалён. ``` --- ## 4. **Получение статистики** 1. **Просмотр статистики** - Реализовать команду `/stats` для получения статистики: ``` Статистика для "Моя машина": - Сканирований: 12 - Сообщений: 5 ``` - Отправить данные в текстовом формате. --- ## 5. **Дополнительные возможности** 1. **Запрос номера телефона** - Использовать **keyboardButtonRequestPhone** для запроса номера телефона владельца. 2. **Запрос геопозиции** - Использовать **keyboardButtonRequestGeoLocation** для получения геопозиции. 3. **Поддержка инлайн-кнопок** - Добавить инлайн-кнопки к уведомлениям: - Ответить на сообщение. - Удалить сообщение. --- ## 6. **Обработка ошибок** 1. **Неверный ввод на каждом этапе** - Реализовать обработку ошибок: - Некорректный выбор объекта. - Неверное название QR-кода. - Неправильный выбор действий. - Отправлять соответствующие сообщения и запрашивать повторный ввод. --- ## 7. **Административный функционал** 1. **Управление пользователями** - Добавить функционал для администратора: - Просмотр статистики всех пользователей. - Удаление неактивных QR-кодов. 2. **Журнал ошибок** - Логировать ошибки пользователей для анализа и улучшения UX. --- # Приоритеты 1. Основной функционал. 2. Уведомления. 3. Управление QR-кодами. 4. Получение статистики. 5. Дополнительные возможности. 6. Обработка ошибок. 7. Административный функционал.