-
Console/Commands/ - Консольные команды
TelegramBotCommand.php- Обработка команд Telegram ботаRunPriceFetcherCommand.php- Команда для запуска фетчера цен
-
Jobs/ - Queue Jobs
FetchPricesJob.php- Получение цен с биржCheckArbitrageJob.php- Проверка арбитражных возможностейSendTelegramNotificationJob.php- Отправка уведомлений в Telegram
-
Models/ - Eloquent модели
User.php- Пользователи Telegram ботаExchange.php- БиржиPrice.php- ЦеныAlert.php- Арбитражные сигналы
-
Services/ - Бизнес-логика
ArbitrageService.php- Сервис обнаружения арбитражаTelegramBotService.php- Сервис работы с Telegram API- Exchange/ - Сервисы для работы с биржами
ExchangeServiceInterface.php- ИнтерфейсBinanceService.php- Интеграция с BinanceOKXService.php- Интеграция с OKXBybitService.php- Интеграция с BybitExchangeServiceFactory.php- Фабрика сервисов
-
migrations/ - Миграции базы данных
0001_01_01_000000_create_users_table.php- Базовая таблица users2024_01_01_000001_create_exchanges_table.php- Таблица бирж2024_01_01_000002_create_prices_table.php- Таблица цен2024_01_01_000003_create_alerts_table.php- Таблица сигналов2024_01_01_000004_update_users_table_for_telegram.php- Обновление users для Telegram
-
seeders/ - Сидеры
DatabaseSeeder.php- Главный сидерExchangeSeeder.php- Заполнение бирж
nginx/default.conf- Конфигурация Nginxphp/local.ini- Настройки PHP
services.php- Конфигурация внешних сервисов (Telegram)queue.php- Конфигурация очередей (Redis)database.php- Конфигурация базы данных
- FetchPricesJob → Получает цены с бирж → Сохраняет в
prices - CheckArbitrageJob → Анализирует цены → Создает
alertsпри обнаружении арбитража - SendTelegramNotificationJob → Отправляет уведомления пользователям
- Queue Worker:
php artisan queue:work redis - Telegram Bot:
php artisan telegram:bot - Price Fetcher:
php artisan arbitrage:fetch-prices BTC/USDT --interval=5
users- Пользователи (telegram_id, password_hash, alerts_enabled)exchanges- Биржи (name, api_url, priority, is_active)prices- Цены (exchange_id, symbol, price, created_at)alerts- Сигналы (symbol, buy_exchange, sell_exchange, profit_percent, notified)
- Пароли хешируются с помощью bcrypt
- Аутентификация через пароль в Telegram боте
- Логирование всех операций
Все логи сохраняются в storage/logs/laravel.log:
- Получение цен с бирж
- Обнаружение арбитража
- Активность Telegram бота
- Ошибки API запросов