supersam/docs/superpowers/plans/2026-03-14-driver-route-wor...

60 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Driver Route Workspace Implementation Plan
> **For agentic workers:** REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** Сделать для водителя понятный экран плана доставок с фильтрами по датам, городу и половине дня, ручной перестановкой очередности и упрощённой карточкой доставки.
**Architecture:** Добавить отдельный набор helper-функций для фильтрации и группировки водительских доставок, затем собрать для роли водителя отдельный UI-модуль планировщика и упрощённую карточку. Навигацию роли водителя сузить до обзорного экрана и раздела доставок, чтобы убрать лишнюю сложность.
**Tech Stack:** React 18, Vite, локальное состояние через hooks, Vitest.
---
## Chunk 1: Driver planning helpers
**Files:**
- Create: `src/services/driverDeliveries.js`
- Test: `src/services/driverDeliveries.test.js`
- Modify: `src/data/mockAppData.js`
- [ ] Добавить тесты на фильтрацию водительских доставок по диапазону дат, городу, половине дня и режиму просмотра.
- [ ] Добавить тест на группировку доставок по дням с сортировкой по ручному маршруту.
- [ ] Добавить тест на перестановку порядка доставок внутри одного дня.
- [ ] Реализовать helper-функции для фильтрации, группировки и перестановки.
- [ ] Обогатить демоданные полями порядка маршрута и достаточным количеством назначенных доставок для показа сценария.
## Chunk 2: Driver workspace UI
**Files:**
- Create: `src/components/driver/DriverDeliveryPlanner.jsx`
- Create: `src/components/driver/DriverDeliveryDetail.jsx`
- Modify: `src/pages/DashboardPage.jsx`
- [ ] Собрать новый экран `Мои доставки` с фильтрами, дневными секциями и карточками.
- [ ] Добавить ручную перестановку карточек внутри дня.
- [ ] Показать на карточке только полезные водителю данные: адрес, клиент, телефон, окно доставки, состав, комментарий логиста, статус.
- [ ] Сделать отдельную простую карточку доставки для водителя вместо общего перегруженного order detail.
## Chunk 3: State wiring and simplification
**Files:**
- Modify: `src/hooks/useOrders.js`
- Modify: `src/services/orderService.js`
- Modify: `src/pages/DashboardPage.jsx`
- Modify: `src/components/dashboard/RoleWorkspacePanel.jsx`
- [ ] Добавить действие для сохранения порядка маршрута в demo-state.
- [ ] Сузить навигацию роли водителя до реально нужных разделов.
- [ ] Сделать overview для водителя более прикладным и связанным с текущими доставками.
- [ ] Проверить, что быстрые действия водителя по статусам по-прежнему работают.
## Chunk 4: Verification
**Files:**
- Test: `src/services/driverDeliveries.test.js`
- Test: `src/services/orderService.test.js`
- [ ] Прогнать `npm test`.
- [ ] Прогнать `npm run lint`.
- [ ] Прогнать `npm run build`.