vault backup: 2025-05-14 11:30:12

This commit is contained in:
2025-05-14 11:30:12 +02:00
parent d517e8bbae
commit bdee218a8e
@@ -0,0 +1,133 @@
## 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. Административный функционал.