erp-transportistas-v2/docs/02-definicion-modulos/MAI-005-despacho/historias-usuario/US-MAI005-007.md
Adrian Flores Cortes 6ed7f9e2ec [BACKUP] Pre-restructure workspace backup 2026-01-29
- Updated docs and inventory files
- Added new architecture docs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 17:35:54 -06:00

139 lines
5.9 KiB
Markdown

# US-MAI005-007: Dashboard de unidades en tiempo real
**ID:** US-MAI005-007
**Modulo:** MAI-005 (Despacho)
**Prioridad:** Alta
**Story Points:** 5
---
## Historia de Usuario
**Como** despachador del centro de control
**Quiero** ver un mapa con todas las unidades de la flota en tiempo real
**Para** conocer la ubicacion y estado de cada unidad y tomar decisiones de asignacion rapidas
---
## Criterios de Aceptacion
### CA-001: Visualizar mapa con unidades
**Dado** que accedo al dashboard de despacho
**Cuando** cargo la vista de mapa
**Entonces** veo todas las unidades con GPS activo posicionadas en el mapa
### CA-002: Identificar estado por color
**Dado** que veo el mapa con unidades
**Cuando** observo cada marcador
**Entonces** el color indica el estado (verde=disponible, azul=asignada, amarillo=en_ruta, rojo=offline)
### CA-003: Ver detalle al hacer click
**Dado** que veo una unidad en el mapa
**Cuando** hago click en el marcador
**Entonces** veo popup con: codigo, operador, estado, ultimo reporte, viaje actual (si aplica)
### CA-004: Filtrar por estado
**Dado** que veo el mapa completo
**Cuando** aplico filtro por estado (ej: solo disponibles)
**Entonces** solo veo las unidades que cumplen el filtro
### CA-005: Filtrar por tipo de unidad
**Dado** que veo el mapa completo
**Cuando** aplico filtro por tipo (tractocamion, remolque, caja)
**Entonces** solo veo las unidades del tipo seleccionado
### CA-006: Actualizar en tiempo real
**Dado** que estoy viendo el mapa
**Cuando** una unidad reporta nueva ubicacion
**Entonces** el marcador se mueve a la nueva posicion sin recargar
### CA-007: Lista lateral sincronizada
**Dado** que veo el mapa
**Cuando** selecciono una unidad de la lista lateral
**Entonces** el mapa centra en esa unidad y muestra su popup
### CA-008: Indicador de antiguedad de posicion
**Dado** que veo una unidad en el mapa
**Cuando** la ultima posicion tiene mas de 5 minutos
**Entonces** el marcador muestra indicador de posicion antigua
---
## Mockup / UI
```
+-----------------------------------------------------------------------+
| CENTRO DE DESPACHO - MAPA DE UNIDADES |
+-----------------------------------------------------------------------+
| Filtros: [Estado: Todos v] [Tipo: Todos v] [Zona: CDMX v] [Buscar...] |
+-----------------------------+-----------------------------------------+
| | |
| UNIDADES (45/52 visibles) | |
| | |
| +------------------------+ | +-----+ |
| | [*] U-005 Kenworth | | / \ |
| | Juan Perez | | +---+ [U-005] |
| | DISPONIBLE | | / \ * |
| | Hace 2 min | | | CDMX \ |
| +------------------------+ | | +--+ |
| | | [U-012] \ |
| +------------------------+ | \ * | |
| | [>] U-012 Freightliner | | \ / |
| | Carlos Lopez | | +---[U-008] |
| | EN_RUTA | | * | |
| | Hace 30 seg | | | |
| +------------------------+ | [U-015] |
| | * |
| +------------------------+ | |
| | [!] U-008 International| | |
| | Roberto Sanchez | | +------------------+ |
| | OFFLINE | | | U-005 Kenworth | |
| | Hace 15 min | | | Juan Perez | |
| +------------------------+ | | DISPONIBLE | |
| | | Ult. pos: 2 min | |
| +------------------------+ | | Cap: 25 TON | |
| | [=] U-015 Volvo | | | [VER] [ASIGNAR] | |
| | Maria Garcia | | +------------------+ |
| | ASIGNADA (VJE-123) | | |
| | Hace 1 min | | |
| +------------------------+ | |
| | Leyenda: |
| [...mas unidades...] | * Verde = Disponible |
| | * Azul = Asignada |
| | * Amarillo = En Ruta |
| | * Rojo = Offline |
+-----------------------------+-----------------------------------------+
| Ultima actualizacion: 10:35:22 | Actualizacion automatica: ON |
+-----------------------------------------------------------------------+
```
---
## Notas Tecnicas
- Endpoint: `GET /api/dispatch/units/available` para lista inicial
- WebSocket para actualizaciones en tiempo real de posiciones
- Libreria de mapas: Leaflet o Google Maps (segun licencia)
- Clustering de marcadores si hay mas de 100 unidades en vista
- Cache de posiciones con TTL de 30 segundos
- Tabla `unit_status` con ultima posicion y timestamp
- Threshold de "posicion antigua": 5 minutos configurable
---
## Definicion de Done
- [ ] Mapa con marcadores de unidades implementado
- [ ] Colores por estado funcionando
- [ ] Popup con detalle de unidad
- [ ] Filtros por estado y tipo
- [ ] WebSocket para actualizaciones en tiempo real
- [ ] Lista lateral sincronizada con mapa
- [ ] Indicador de posicion antigua
- [ ] Clustering para muchas unidades
- [ ] Tests de integracion con WebSocket
---
*US-MAI005-007 - Modulo MAI-005 - ERP Transportistas*