# Карта Суп Telegram Bot Telegram бот для проверки баланса и истории транзакций карты Карта Суп. ## Возможности - 💳 Сохранение кода карты для каждого пользователя - ✍️ Ввод кода карты (13 цифр, начинается с 2001) - 💰 Проверка баланса карты - 📊 Просмотр последних транзакций - 🔄 Изменение кода карты - 📱 Удобное меню с кнопками - 🛡️ Защита от спама (rate limiting) - ✅ Валидация кода карты ## Технологии - NestJS - TypeScript - Telegraf (Telegram Bot API) - TypeORM - PostgreSQL - Docker ## Установка и запуск ### Локальная разработка 1. Установите зависимости: ```bash npm install ``` 2. Создайте файл `.env` на основе `.env.example`: ```bash cp .env.example .env ``` 3. Заполните переменные окружения в `.env`: ```env TELEGRAM_BOT_TOKEN=your_bot_token_here DATABASE_HOST=localhost DATABASE_PORT=5432 DATABASE_USER=postgres DATABASE_PASSWORD=postgres DATABASE_NAME=karta_soup NODE_ENV=development ``` 4. Запустите PostgreSQL (или используйте Docker): ```bash docker run -d \ --name postgres \ -e POSTGRES_PASSWORD=postgres \ -e POSTGRES_DB=karta_soup \ -p 5432:5432 \ postgres:15-alpine ``` 5. Запустите приложение: ```bash npm run start:dev ``` ### Запуск с Docker 1. Создайте файл `.env`: ```bash cp .env.example .env ``` 2. Укажите токен бота в `.env`: ```env TELEGRAM_BOT_TOKEN=your_bot_token_here ``` 3. Запустите контейнеры: ```bash docker-compose up -d ``` 4. Проверьте логи: ```bash docker-compose logs -f app ``` ### Деплой на сервер 1. Скопируйте проект на сервер: ```bash scp -r . user@your-server:/path/to/app ``` 2. На сервере создайте `.env` файл с вашими настройками 3. Запустите: ```bash docker-compose up -d ``` ## Команды бота - `/start` - Начать работу с ботом - `/balance` - Проверить баланс - `/changecode` - Изменить код карты - `/help` - Показать справку ## Структура проекта ``` src/ ├── bot/ │ ├── bot.module.ts # Модуль бота │ └── bot.update.ts # Обработчики команд и сообщений ├── entities/ │ └── user.entity.ts # Сущность пользователя ├── interfaces/ │ └── balance.interface.ts # Интерфейсы для API ├── services/ │ ├── karta-soup.service.ts # Сервис для работы с API Карта Суп │ └── user.service.ts # Сервис для работы с пользователями ├── app.module.ts # Главный модуль приложения └── main.ts # Точка входа ``` ## API Карта Суп Бот использует публичный API для получения информации о балансе: ``` GET https://meal.gift-cards.ru/api/1/cards/{code}?limit=100 ``` ## Лицензия MIT