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

  1. Arranca el back (Docker Desktop + GoxuApplication) y el front (npm run dev).
  2. Inicia sesión con un usuario con rol DELIVERY (p. ej. [email protected]).
  3. Abre http://localhost:5173/motorista para el dashboard, y http://localhost:5173/motorista/entregas para "Mis entregas".
  4. 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.