Saltar a contenido

Documento histórico

Este documento se conserva solo para trazabilidad. Consulte el índice maestro para la fuente vigente.

Documento histórico — no usar como fuente de decisiones actuales

Reemplazado por la versión canónica del 2026-07-11. Conservar solo como trazabilidad histórica.


CU-011: Solicitar servicio adicional (inspección / reempaque / devolución)

Caso de uso detallado para que un usuario solicite un servicio adicional sobre uno de sus paquetes.


Metadatos

Campo Valor
ID CU-011
Nombre Solicitar servicio adicional
Actor primario Usuario Final
Actores secundarios Operador, Sistema de Notificaciones
Módulo Servicios adicionales
Prioridad Alta (MVP)
Frecuencia esperada Media
Trazabilidad SRS RF-033, RF-034, RF-050, RF-051, RF-052, RN-053, RN-054

Descripción

Un usuario con KYC aprobado puede solicitar uno o más servicios adicionales sobre un paquete propio que esté en estado en_almacen o listo_para_consolidar. Los servicios disponibles en MVP son:

  • Inspección visual: el operador abre el paquete, toma fotos del producto y verifica estado físico.
  • Prueba funcional: el operador enciende y prueba brevemente el dispositivo.
  • Reempaque: el operador cambia el empaque por uno más seguro.
  • Devolución a tienda: el operador envía el paquete de vuelta al vendedor.

Precondiciones

  • El usuario está autenticado.
  • El usuario tiene KYC aprobado.
  • El paquete pertenece al usuario.
  • El paquete está en en_almacen o listo_para_consolidar.
  • El usuario tiene al menos 1 foto de evidencia (si ya fue solicitado y rechazado por falta de evidencia).

Postcondiciones

Éxito: - Se crea un registro en service_requests con estado solicitado. - El paquete pasa a estado en_servicio_adicional. - Se envía notificación al operador. - Se envía confirmación al usuario.

Fallo: - Se muestra error inline al usuario.


Flujo principal

  1. El usuario abre el detalle de un paquete propio.
  2. El usuario toca "Solicitar servicio".
  3. El sistema muestra las opciones disponibles según el tipo de paquete.
  4. El usuario selecciona el tipo de servicio (inspección, prueba, reempaque, devolución).
  5. Si es inspección o prueba, el usuario puede:
  6. Adjuntar hasta 5 fotos del producto esperado.
  7. Agregar descripción de qué debe verificar el operador.
  8. Si es reempaque, el usuario puede:
  9. Seleccionar tamaño de caja (S, M, L, XL).
  10. Indicar si requiere material extra (cinta, plástico burbuja).
  11. Si es devolución, el usuario debe:
  12. Subir evidencia de la conversación con la tienda.
  13. Indicar dirección de retorno del vendedor.
  14. El usuario revisa el costo estimado (calculado por Quote Service).
  15. El usuario acepta el costo → se crea service_request con estado solicitado.
  16. El sistema cambia el paquete a en_servicio_adicional.
  17. El sistema notifica al operador.
  18. El operador ejecuta el servicio y sube evidencia (ver CU-022).
  19. El servicio pasa por los estados: solicitado → cotizado → pendiente_pago → en_proceso → completado.

Flujos alternativos

FA-1: KYC no aprobado

  • En el paso 1, si KYC != aprobado:
  • El sistema bloquea la acción con mensaje "Debes completar KYC para solicitar servicios".

FA-2: Paquete no elegible

  • Si el paquete está en estado distinto a en_almacen o listo_para_consolidar:
  • El sistema muestra "Este paquete no admite servicios en su estado actual".

FA-3: Servicio ya activo

  • Si ya existe un service_request activo sobre este paquete:
  • El sistema muestra el existente y no permite duplicar.

FA-4: Cancelación antes de pago

  • En cualquier momento antes de en_proceso, el usuario puede cancelar el servicio.
  • El paquete vuelve a en_almacen.

Reglas de negocio

  • RN-050: Un paquete solo puede tener un servicio activo a la vez.
  • RN-051: El servicio de inspección no aplica a alimentos, líquidos o sustancias controladas.
  • RN-052: El reempaque requiere aprobación previa de costo.
  • RN-053: La devolución requiere evidencia de la conversación con la tienda.
  • RN-054: El plazo máximo del paquete en en_servicio_adicional es de 15 días. Pasado ese plazo, se escala a administrador.

Endpoints API

  • POST /api/v1/service-requests — crea la solicitud
  • GET /api/v1/service-requests?package_id={id} — lista
  • POST /api/v1/service-requests/{id}/approve-cost — aprueba el costo
  • POST /api/v1/service-requests/{id}/cancel — cancela (usuario)
  • POST /api/v1/service-requests/{id}/evidence — sube evidencia (operador)

Ver api-contract.md para el detalle.


Pantallas

  • RequestServiceScreen (app)
  • ServiceRequestDetailScreen (app)
  • Backoffice: ServiceRequestsQueueScreen, ServiceRequestDetailScreen

Eventos generados

  • SERVICE_REQUESTED — al crear
  • SERVICE_QUOTED — al cotizar
  • SERVICE_APPROVED — al aprobar el costo
  • SERVICE_IN_PROGRESS — al iniciar ejecución
  • SERVICE_COMPLETED — al terminar
  • SERVICE_CANCELLED — al cancelar

Notificaciones generadas

  • Push al operador: "Nuevo servicio solicitado por usuario X"
  • Push al usuario: "Tu solicitud de [servicio] fue recibida"
  • Push al usuario: "Tu servicio está en proceso"
  • Push al usuario: "Tu servicio fue completado. [Ver evidencia]"