erp-transportistas-v2/docs/02-definicion-modulos/MAI-005-despacho/historias-usuario/US-MAI005-006.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

134 lines
5.7 KiB
Markdown

# US-MAI005-006: Sugerir mejor unidad para asignacion
**ID:** US-MAI005-006
**Modulo:** MAI-005 (Despacho)
**Prioridad:** Alta
**Story Points:** 8
---
## Historia de Usuario
**Como** despachador del centro de control
**Quiero** ver sugerencias de asignacion con scoring detallado para cada viaje pendiente
**Para** tomar decisiones informadas y asignar la mejor unidad disponible de forma eficiente
---
## Criterios de Aceptacion
### CA-001: Visualizar sugerencias ordenadas
**Dado** que tengo un viaje pendiente de asignar
**Cuando** solicito sugerencias de asignacion
**Entonces** veo una lista de unidades ordenadas por score total de mayor a menor
### CA-002: Mostrar desglose de score
**Dado** que veo la lista de sugerencias
**Cuando** reviso cada unidad sugerida
**Entonces** puedo ver el desglose del score por criterio (distancia, capacidad, disponibilidad, skills)
### CA-003: Indicador visual de score
**Dado** que veo una unidad sugerida
**Cuando** observo el score total
**Entonces** veo un indicador visual (verde >80, amarillo 60-80, rojo <60)
### CA-004: Informacion de distancia
**Dado** que veo una unidad sugerida
**Cuando** reviso los datos de distancia
**Entonces** veo la distancia en km y el tiempo estimado de llegada al origen
### CA-005: Mostrar ubicacion en mapa
**Dado** que veo las sugerencias
**Cuando** selecciono ver en mapa
**Entonces** veo el origen del viaje y las unidades sugeridas con su ubicacion actual
### CA-006: Filtrar sugerencias
**Dado** que solicito sugerencias
**Cuando** aplico filtros (tipo de unidad, skills, distancia maxima)
**Entonces** las sugerencias respetan los filtros aplicados
### CA-007: Asignar desde sugerencia
**Dado** que revise las sugerencias
**Cuando** selecciono una unidad y confirmo
**Entonces** el viaje queda asignado y se registra el score en el log
---
## Mockup / UI
```
+-----------------------------------------------------------------------+
| SUGERENCIAS DE ASIGNACION [X] |
+-----------------------------------------------------------------------+
| |
| Viaje: VJE-0456 | Cliente: Transportes MX |
| Origen: Av. Insurgentes 1234, CDMX | Destino: Queretaro Centro |
| Capacidad requerida: 20 TON | Skills: HAZMAT |
| |
| Filtros: [Tipo: Todos v] [Distancia max: 50km] [Solo con HAZMAT] |
| |
| +----------------------------------------------------------------+ |
| | #1 U-005 - Kenworth T680 [87] #### | |
| | Juan Perez Garcia | 7.2 km | ETA: 15 min | |
| | +-------------------------------------------------------+ | |
| | | Distancia: 95/100 | Cap: 100/100 | Disp: 100/100 |Skill:90| |
| | +-------------------------------------------------------+ | |
| | Skills: HAZMAT, Refrigerado | |
| | [Ver en Mapa] [Ver Detalles] [ASIGNAR] | |
| +----------------------------------------------------------------+ |
| |
| +----------------------------------------------------------------+ |
| | #2 U-012 - Freightliner Cascadia [72] ### | |
| | Carlos Lopez | 15.3 km | ETA: 25 min | |
| | +-------------------------------------------------------+ | |
| | | Distancia: 70/100 | Cap: 100/100 | Disp: 50/100 |Skill:100| |
| | +-------------------------------------------------------+ | |
| | Skills: HAZMAT, Carga Pesada | |
| | [Ver en Mapa] [Ver Detalles] [ASIGNAR] | |
| +----------------------------------------------------------------+ |
| |
| +----------------------------------------------------------------+ |
| | #3 U-008 - International LT [65] ## | |
| | Roberto Sanchez | 22.1 km | ETA: 35 min | |
| | +-------------------------------------------------------+ | |
| | | Distancia: 55/100 | Cap: 100/100 | Disp: 100/100|Skill:70| |
| | +-------------------------------------------------------+ | |
| | Skills: HAZMAT (falta: ninguno) | |
| | [Ver en Mapa] [Ver Detalles] [ASIGNAR] | |
| +----------------------------------------------------------------+ |
| |
| Mostrando 3 de 3 unidades disponibles | Algoritmo: weighted_score_v1|
| |
+-----------------------------------------------------------------------+
```
---
## Notas Tecnicas
- Endpoint: `POST /api/dispatch/suggest`
- Calculo de distancia con formula Haversine
- Criterios de scoring configurables en `dispatch_rules`
- Cache de ubicaciones GPS con TTL de 30 segundos
- Maximo de 5 sugerencias por defecto (configurable)
- Score se persiste en `dispatch_logs` al asignar
- Mapa utiliza componente MapView con marcadores dinamicos
---
## Definicion de Done
- [ ] Endpoint /dispatch/suggest implementado
- [ ] Algoritmo de scoring con 4 criterios
- [ ] UI de lista de sugerencias con desglose
- [ ] Indicadores visuales de score (colores)
- [ ] Vista de mapa con unidades sugeridas
- [ ] Filtros de busqueda funcionales
- [ ] Integracion con endpoint /dispatch/assign
- [ ] Tests unitarios del algoritmo de scoring
- [ ] Tests E2E del flujo completo
---
*US-MAI005-006 - Modulo MAI-005 - ERP Transportistas*