first commit

This commit is contained in:
2026-02-15 01:34:17 +07:00
commit baac22e3ae
95 changed files with 13238 additions and 0 deletions

57
README.md Normal file
View File

@@ -0,0 +1,57 @@
# Тестовое задание
**На хост машине**
```bash
make help
make build
make install
make run # заполнит базу и запустит тесты
```
Необходимо задать переменные окружения
```dotenv
WB_URL="url"
WB_API_KEY="123"
```
## Синхронизация
Инкрементальная
```php
Schedule::command('sync:all')->dailyAt('00:10');
```
Для ORDERS, SALES, INCOMES синхронизация берёт данные по завершённым дням
Первый запуск: берутся все данные с даты 2 года назад до вчерашнего дня
Последующие запуски: берётся только следующий завершённый день после последней успешной записи (date_to)
Для STOCKS всегда берётся только текущий день, так как API поддерживает только актуальные данные
Ручное управление
```bash
make sh # для входа в контейнер
```
```bash
Available commands for the "sync" namespace:
php artisan sync:all Command description
php artisan sync:incomes Sync incomes from WB API
php artisan sync:orders Sync orders from API
php artisan sync:sales Sync sales from WB API
php artisan sync:stocks Sync stocks from WB test API
```
Расширение
[Конфиг](laravel/config/wb-sync.php)
### Комментарий:
Апи может присылать полные дубли строк, думал делать вставку через upsert + уникальный ключ
например по хешу основных строк, но выбрал более простой вариант с обычным заполнением