diff --git a/docs/updates-2025-08-11.md b/docs/updates-2025-08-11.md new file mode 100644 index 0000000..567da3c --- /dev/null +++ b/docs/updates-2025-08-11.md @@ -0,0 +1,26 @@ +# Обновления за 11.08.2025 + +Ниже кратко описаны изменения из двух последних коммитов за сегодня. + +## 1) Надёжность статистики WB и фолбэк кэша +- Коммит: `8ba8fc1` (22:30) +- Суть: устранили ситуацию, когда на фронте отображалось «Нет данных», добавили корректную обработку дат рекламы и фолбэк из кэша при ограничениях WB API (429). +- Изменения: + - Клиент (`src/components/seller-statistics/sales-tab.tsx`): + - При успешном `refetch` сразу применяем полученные данные (`applyData`), не дожидаясь обновления состояния Apollo, чтобы исключить «пустое» состояние. + - Сервис (`src/services/wildberries-service.ts`): + - Нормализуем даты дневной статистики рекламы до формата `YYYY-MM-DD`, чтобы они сопоставлялись с датами продаж/заказов и корретно проходили фильтрацию по диапазону. + - Резолвер (`src/graphql/resolvers.ts`): + - Если при ошибке WB (например, 429) нет `productsData` в кэше, но есть `advertisingData`, формируем минимальный набор статистики по датам на основе кэша рекламы (затраты, заказы, выручка) — чтобы хоть какие-то данные отображались. +- Результат: данные в «Продажах» отображаются стабильнее — как при успешном ответе WB, так и при 429 за счёт кэш‑фолбэка. Расходы на рекламу корректно маппятся на даты продаж. + +## 2) Реалтайм через SSE и отказ от опроса +- Коммит: `3a56092` (22:13) +- Суть: добавлен механизм Server‑Sent Events (SSE) для реалтайм‑нотификаций, публикация событий из резолверов и отказ от периодического опроса в интерфейсе. +- Изменения: + - Бэкенд: публикация событий из GraphQL‑резолверов. + - Фронтенд: удалён polling в чатах, боковой панели, вкладках поставок и склада; подключена реактивная подгрузка через SSE. +- Результат: уменьшена нагрузка на сеть и сервер, данные обновляются в интерфейсе в реальном времени без циклических запросов. + +--- +Если потребуется — добавим более детализированный CHANGELOG и разнесём обновления по модулям.