# Тестовое задание **На хост машине** ```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 + уникальный ключ например по хешу основных строк, но выбрал более простой вариант с обычным заполнением