Проект представляет собой создание бота для торговой платформы в Telegram, который будет поддерживать следующие функции: управление продуктами и категориями товаров, фильтрация продуктов по географическому положению пользователя, покупки с автоматическим списанием средств со счета пользователя, пополнение баланса через криптовалюту, импорт/экспорт данных и настройка в конфиг-файле.
Используемые технологии:
Язык программирования: Golang
База данных: SQLite3
Среда разработки контейнеров: Docker
1. Сущности (Entities)
1.1 Пользователь (User)
ID: уникальный идентификатор пользователя.
balance: баланс пользователя.
1.2 Категории товаров и товары
Categories:
ID: уникальный идентификатор категории.
Название: название категории.
Products:
ID: уникальный идентификатор продукта.
Описание: текстовое описание продукта.
Цена: цена за единицу товара (float).
Количество: количество доступных товаров (integer).
Фото скрытое: дополнительное изображение товара (для пользователей после покупки).
Описание скрытое: дополнительная информация для пользователей после покупки.
Флаг оплаты (is_paid): указывает, что платеж за продукт был проведен.
1.3 Локации
Страна: уникальный идентификатор страны.
Город: название города.
Район города: название района внутри города.
1.4 Кошельки для пополнения баланса (Wallets)
Тип монеты: тип криптовалюты (Bitcoin, Monero, Litecoin и т.д.).
Массив кошельков по каждому типу монеты.
2. Отображение товара
Продукты отображаются в зависимости от выбранного радиуса и города. Если координаты продукта попадают в указанный радиус, продукт будет показан пользователю.
3. Процесс покупки
Пользователь выбирает город.
Продукты фильтруются по выбранному городу и отображаются пользователю.
После успешной покупки средства списываются с баланса пользователя, продукт считается проданным (снимается единица из количества), и пользователю показывается скрытое фото и описание.
4. Пополнение баланса
При пополнении через криптовалюту:
Виджет предлагает сумму для пополнения.
Выбирается кошелек для конкретного типа монеты из массива доступных кошельков.
После пополнения бот проверяет транзакцию каждую минуту до тех пор, пока средства не поступят на кошелек.
5. Настройки
Конфиг файл: хранит все необходимые для работы бота параметры (например, пути к базам данных, API ключи, прокси и т.д.)
База данных: SQLite3
6. Импорт/Экспорт товаров
Товары будут импортироваться из CSV файла и экспортироваться обратно при необходимости обновления.
7. Работа в контейнере Docker
Бот запускается внутри Docker-контейнера.
Конфигурационные файлы передаются контейнеру через переменные окружения или тома Docker.