# Sprint 19 — bulk-операции + сохранённые пресеты + power-user UX Цель: розничный админ работает быстрее в 2-3 раза за счёт массовых операций, сохранённых пресетов фильтров, keyboard-first UX, inline-edit и CSV import/export. Старт: 2026-06-07 (после Sprint 18). Исполнитель: Claude Opus 4.7. ## Принципы - Bulk-операции — одной транзакцией; multi-tenant guard в каждом endpoint'е. - Пресеты — per-user в org (cross-org нельзя видеть). - Inline-edit с optimistic update, fallback на revert + toast. - НЕ трогать: `global.json`, prod admin.food-market.kz, POS WPF. ## Чек-лист - [ ] **1. Bulk-обновление товаров** — checkbox-колонка + sticky панель на /catalog/products. Операции: «+%/+₸ к цене», «Сменить группу», «Архивировать», «Снять с продажи». Endpoint `POST /api/catalog/products/bulk-update {ids, op, params}` — одна транзакция, query-filter гарантирует tenant-isolation. - [ ] **2. Сохранённые фильтры (presets)** — domain `UserPreset` (UserId+OrgId+PageKey+Name+ConfigJson). `` chips сверху списка. CRUD endpoint'ы. Применено к /reports/sales, /reports/stock, /reports/profit, /catalog/products. - [ ] **3. Quick-actions (Cmd+J)** — отдельная палитра от Cmd+K. Меню недавних действий пользователя; хранится в localStorage per-user (по userId). Топ-10 пунктов. - [ ] **4. Inline-edit в таблицах** — dblclick по цене на /catalog/products → input → Enter сохраняет (`PATCH /api/catalog/products/{id}/price`). То же для остатка (admin only, через `enter` корректирующий). Optimistic + revert. - [ ] **5. Импорт CSV для товаров** — модалка с upload, preview таблицы (валидация на клиенте + на сервере), коммит транзакцией. Колонки: name,price,unit,group,barcode. Ошибки строк показаны в preview. - [ ] **6. Экспорт CSV/XLSX** — кнопка «Экспорт» в списках: /catalog/products, /catalog/counterparties, /sales/retail, /purchases/supplies, /inventory/stock. CSV — серверная генерация с теми же фильтрами что и поиск. - [ ] **7. Keyboard-first навигация по таблицам** — ↑/↓/Enter/Delete/ Space в DataTable + документация на /help. ## Журнал ### 2026-06-07 старт Sprint 18 закрыт (7/7 ✓ + 1 hotfix). Поехали по power-user UX.