Motorista - FactoriaF5-Asturias/project-p5-digital-academy-team2-restaurant-frontend GitHub Wiki
Motorista — Panel del repartidor
Vista
El Panel de Repartidor (/motorista) tiene cabecera y menú lateral propios (DeliveryLayout.vue): Dashboard (servicio actual en curso con botones "Ver Pedido"/"Entregar", bloque de servicios disponibles con un pedido nuevo a aceptar o rechazar, historial reciente del día, y mapa con la ruta activa) y Mis entregas (listado completo de pedidos del repartidor). Requiere estar logueado con un usuario con rol DELIVERY. Al llegar un servicio nuevo se abre un modal con recogida, entrega, resumen del pedido y botones Aceptar/Rechazar.
Responsables y tareas
Responsable: Jenny Sánchez
| Tarea Jira |
Descripción |
Estado |
| GC-191 |
[HU-22] Ver mis rutas activas y pedidos asignados |
Listo |
| GC-192 |
[HU-23] Ver el mapa de la ruta activa |
Listo |
| GC-193 |
[HU-24] Marcar un pedido como entregado |
Listo |
Entidades involucradas
| Archivo |
Tipo |
Función |
src/Views/DeliveryLayout.vue |
Vista/Layout |
Cabecera y menú lateral del panel de repartidor (Dashboard, Mis entregas, Cerrar sesión) |
src/Views/DeliveryDashboardView.vue |
Vista |
Servicio en curso, servicios disponibles, historial del día y mapa de ruta activa |
src/Views/DeliveryOrdersView.vue |
Vista |
Listado completo de "Mis entregas" |
src/components/delivery/NewOrderModal.vue |
Componente |
Modal de nuevo servicio, con recogida, entrega, resumen y botones Aceptar/Rechazar |
src/components/delivery/OrderDetailModal.vue |
Componente |
Modal de detalle de un pedido ("Ver Pedido") |
src/composables/useDeliveryState.js |
Composable |
Estado compartido entre vistas: currentService, availableService, allOrders y las funciones acceptOrder, rejectOrder, deliverOrder |
Endpoints que consume
| Método |
Ruta |
Para qué |
PUT |
/api/orders/{id}/status |
Marcar un pedido como en tránsito o entregado |
GET |
/api/orders/{id}/tracking |
Historial de seguimiento del pedido |
Cómo probarlo
- Arranca el back (Docker Desktop +
GoxuApplication) y el front (npm run dev).
- Inicia sesión con un usuario con rol
DELIVERY (p. ej. [email protected]).
- Abre
http://localhost:5173/motorista para el dashboard, y http://localhost:5173/motorista/entregas para "Mis entregas".
- Comprueba que:
- Se ve el servicio actual en curso con sus botones "Ver Pedido" y "Entregar".
- El bloque de servicios disponibles muestra el modal de nuevo pedido con Aceptar/Rechazar.
- El mapa de ruta activa carga correctamente (Leaflet).
Decisiones
- Layout propio
DeliveryLayout.vue, siguiendo el mismo patrón que AdminLayout.vue, porque el mockup del panel de repartidor sí llevaba sidebar (a diferencia del de Cocina).
- Estado centralizado en un composable (
useDeliveryState.js) en vez de duplicar los datos en cada vista, para que el dashboard y "Mis entregas" muestren siempre la misma información.
- Mapa de ruta activa (HU-23) con Leaflet (mapa real interactivo) en vez de una imagen estática.
Limitaciones
- Los pedidos son mock data fija dentro del composable; todavía no está conectada al backend real.
- La ruta trazada en el mapa y los tiempos/distancias mostrados son datos de ejemplo, no cálculo real de rutas.
- Los botones "Aceptar"/"Rechazar" del modal no llaman todavía a ningún endpoint del backend.