# 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*