2.4 KiB
2.4 KiB
Sprint 8 — real-time + Telegram-бот владельца + локализация + MinIO
Цель: добавить «живой» опыт (live-обновление виджетов через SignalR), канал для уведомлений владельцу (Telegram-бот с ежедневной сводкой), английский UI (i18n) и перенести uploads в MinIO/S3.
Старт: 2026-05-31. Исполнитель: Claude Opus 4.7 (автономный режим).
Принципы
- Multi-tenant обязателен — Hub-группы per-org, OwnerTelegramChatId на Organization, MinIO bucket общий но object-key
{orgId}/.... - Каждый пункт: dotnet build + локальные тесты +
~/deploy-stage.sh+ retest наhttps://test.admin.food-market.kz. - НЕ трогать: global.json, прод-стек (admin.food-market.kz), POS WPF.
Чек-лист
- 1. P2-7 SignalR real-time — Hub
/hubs/notificationsс группами per-org. СобытияSalePosted/SupplyPosted/LowStock. JWT через query?access_token=(для WebSocket). Дашборд: live-индикатор Wifi, оптимистическое приращение «Выручка сегодня», toast.info на SupplyPosted, toast.error на LowStock. Тесты: SignalRNotificationsTests (multi-tenant 1/1) +stage-ui-signalr.spec.ts(1/1 ✓). Nginx/hubs/с upgrade-хедерами и 24h read_timeout. - 2. P2-14 Telegram-бот владельца — Hangfire
OwnerDailySummaryJob09:00 МСК, ежедневная сводка (выручка вчера, продажи, топ-3, low-stock). Привязка через deep-link →Organization.OwnerTelegramChatId. UI в OrgSettings. - 3. P2-6a Локализация UI (en) — react-i18next,
ru.json+en.json, language switcher в header. kz TODO. На стейдже smoke — все страницы переключаются. - 4. P2-15 MinIO/S3 для uploads —
MinioSDK, bucketfood-market-uploads, авто-создание на старте, миграция existing volume.Storage:Type=Local|Minioс fallback на Local. Тесты + UI upload картинки.
Журнал
2026-05-31 — старт
Sprint UI-deep закрыт (docs/sprint-ui-deep-progress.md, 59/59 ✓, 6 багов починены). Перехожу к Sprint 8 пункт 1 (SignalR).