# Panel frontend de seguimiento de rutas

Este cambio agrega únicamente la interfaz Vue del seguimiento administrativo. No modifica migraciones, modelos, controladores ni rutas backend.

## Visibilidad

El componente se muestra únicamente cuando el tenant tiene activo el giro de distribuidora de agua y el usuario no tiene el perfil `delivery_driver`.

El backend debe seguir validando autorización y tenant en cada solicitud; la condición Vue es solo de presentación.

## Endpoint esperado

El componente consulta `GET /delivery/routes/active?status=active`.

Respuesta aceptada:

```json
{
  "data": [
    {
      "id": "route-20261016-001",
      "name": "Ruta Bagua centro",
      "code": "RT-0001",
      "status": "active",
      "driver_name": "Repartidor Demo",
      "orders_count": 8,
      "last_sync_at": "2026-10-16T14:32:00-05:00",
      "last_location_at": "2026-10-16T14:31:42-05:00",
      "last_latitude": -5.6369699,
      "last_longitude": -78.539023,
      "sync_status": "synced"
    }
  ]
}
```

`sync_status` puede ser `synced`, `stale` u `offline`. Si no se envía, el frontend calcula `stale` después de cinco minutos y `offline` cuando no existe una sincronización.

## Estados de interfaz

- `200` con lista vacía: muestra “No hay rutas activas”.
- `200` con rutas: muestra ruta, repartidor, pedidos, última ubicación y hora.
- `404`: muestra que el endpoint aún no está conectado, sin romper la pantalla.
- Otros errores: muestra un aviso y permite reintentar.

La respuesta debe estar filtrada por tenant y nunca debe incluir rutas de otros tenants.
