60 lines
4.0 KiB
Markdown
60 lines
4.0 KiB
Markdown
# 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`.
|