Contrato de solicitudes logísticas de Driver
Las solicitudes logísticas de Driver son contratos de asignación, no actualizaciones normales de estado de pedidos. La visibilidad de la lista, presentación del detalle, elegibilidad para decidir, resolución de asignación, efectos sobre integrantes agrupados y acciones posteriores de ETA deben mantenerse separados.
Una tarjeta, aviso, navegación Atrás, elemento de lista movido o pedido integrante cambiado no confirma una aceptación o rechazo. Confirma la decisión con el resultado devuelto por el servidor.
Disponibilidad
La entrada de logística se presenta de forma condicional según la configuración y composición de pestañas. El cliente trata un valor sin procesar de módulo no vacío como verdadero; por tanto, que la entrada sea visible no demuestra que esté habilitada intencionalmente.
La lista/el detalle también requieren contexto Driver autenticado, conectividad, datos actuales de la solicitud y estado de presentación no vencido. La API controla por separado las decisiones de rol, ámbito propio, propiedad de la solicitud, pendiente/ventana de tiempo, bloqueo, carga ocupada, capacidad y concurrencia.
Requisitos previos
- Vincula la identidad Driver con la sesión autenticada; nunca aceptes como autorización una identidad Driver proporcionada por el cliente.
- Trata como privados los ID de solicitud/grupo/integrante, datos de negocio/cliente/pedido, horarios, ubicación, mensajes y metadatos socket.
- Distingue los contratos de asignación individual, asignación agrupada y estado normal de pedido.
- Abrir el detalle puede cargar datos del pedido y activar conexiones en tiempo real; el acceso depende de una sesión Driver válida y de los permisos del pedido.
Límites de responsabilidad
| Responsable | Responsabilidad |
|---|---|
| Lista de Driver App | Presentar carga/tarjetas/vacío/filtrado de vencidas/error y actualización local |
| Detalle de Driver App | Presentar contexto de solicitud/pedido/grupo y controles de decisión |
| API de lectura de asignaciones | Autenticar el ámbito propio de Driver y devolver datos elegibles de solicitud/detalle |
| API de decisión de asignación | Validar propiedad/estado/tiempo/bloqueo/carga/capacidad/concurrencia y aplicar una decisión |
| Servicios de grupo/pedido | Aplicar asignación de grupo/integrantes, cancelar solicitudes en conflicto y aplicar efectos relacionados al pedido |
| Acción posterior de ETA | Actualizar cada integrante aceptado de forma independiente cuando esté configurado |
| Socket/push/proveedores | Transportar actualizaciones únicamente; nunca definir autorización ni finalización duradera |
| Despachador/operador | Conciliar estados parciales o ambiguos de asignación/integrantes |
Entradas y resultados
Lecturas de lista y detalle
Las entradas incluyen contexto Driver autenticado, estado de paginación/filtro y ciclo de vida actual de la solicitud. Los resultados pueden ser carga, tarjetas de solicitudes presentables, tarjetas agrupadas, estado vacío, vencida/eliminada, detalle o error.
La distancia derivada de la ubicación guardada es una entrada de presentación/elegibilidad, no una garantía de posición reciente o confiable en vivo.
Decisiones
La intención de aceptar/rechazar se aplica a una solicitud de asignación y al Driver actual. El servicio debe volver a validar propiedad, estado pendiente, vencimiento, bloqueos, carga de trabajo, capacidad de grupo y concurrencia en el momento de la decisión.
Espera el resultado de la decisión antes de considerar aceptada o rechazada una solicitud. El flujo actual de detalle puede volver atrás antes de que se resuelva una solicitud de rechazo, así que regresar a la lista no confirma el resultado.
Grupos y ETA
Una decisión de asignación agrupada puede afectar al grupo, pedidos integrantes, solicitudes en conflicto, estado Driver, historial, integraciones, sockets, notificaciones y trabajos. La ETA predeterminada configurada es una escritura independiente para cada integrante después de aceptar. Esas escrituras no forman una transacción y los fallos individuales pueden pasar inadvertidos.
Seguridad y privacidad
- Obtén la identidad Driver de la sesión autenticada.
- Autoriza la solicitud de asignación y cada grupo/integrante afectado antes de mutar.
- Usa bloqueos/idempotencia para evitar que varios Drivers compitan o se dupliquen decisiones.
- Devuelve un resultado limitado al propósito, sin datos privados de contacto/ubicación/mensajes que la interfaz de decisión no necesite.
- Nunca registres ID de solicitud, grupo o integrante, coordenadas, datos de contacto, tokens, salas ni cargas de proveedores en tickets o ejemplos compartidos.
Límites y estados de fallo
| Estado | Interpretación requerida |
|---|---|
| Tarjeta/detalle visible | Presentación candidata, no recibo de elegibilidad |
| Error de bloqueo/vencimiento/ocupación/capacidad | Decisión rechazada en una etapa de validación |
| Atrás tras decidir | Solo navegación |
| El grupo cambia de lista | Presentación local/resultado, no finalización para todos los integrantes |
| Aviso | Mensaje del cliente, no recibo duradero de asignación |
| ETA parcial | Puede haberse resuelto la asignación y fallado una o varias escrituras de ETA |
| Actualización socket | Indicación de transporte, no garantía de autorización/orden |
| Actividad de GPS/mensajes/proveedor en detalle | Efectos del montaje, no resultado de asignación |
La asignación del grupo y las actualizaciones de ETA son operaciones independientes. No supongas que una decisión es atómica para todos los integrantes, que se revierte por completo o que se puede repetir sin comprobar el resultado actual del servidor.
Diagnóstico
Desaparece una solicitud
Considera como posibles causas el vencimiento, bloqueo, propiedad, una decisión competidora, actualización socket o refresco. Vuelve a leer la lista actual autorizada; no repitas una decisión.
Ocurre Atrás justo después de Rechazar
No interpretes Atrás como éxito del rechazo. Espera un recibo de resultado del servidor o pide al despachador que concilie la solicitud.
El grupo se actualizó parcialmente
Concilia la asignación y cada integrante por separado. No corrijas ETA/estado de integrantes desde el cliente sin un contrato de recuperación aceptado.
La ETA varía entre integrantes
Las escrituras de ETA son acciones posteriores independientes. Registra en privado el conjunto de integrantes afectados y usa la vía de conciliación del operador responsable.
La entrada de logística aparece inesperadamente
Revisa la configuración tipada y la política combinada de pestañas. La conversión implícita a verdadero de un valor sin procesar no es un contrato de habilitación.
Guías relacionadas: Solicitudes de asignación logística · Aceptar una solicitud de entrega · Rechazar una solicitud de entrega