Skip to content

Use Cases

Este documento detalla los principales casos de uso implementados en el worker de Auto-Restocking, organizados por categorías funcionales.

  • Descripción: Procesa eventos de transacciones de entrada desde la cola y actualiza operaciones de reabastecimiento cuando se añaden productos a ubicaciones de picking o preparation.

  • Interfaz de entrada:

    interface InputEventMessage {
    type: 'InputTransaction' | string
    data: {
    entryId: string
    transactionId: string
    productId: string
    productEan: string
    locationId: string
    locationType: LocationType
    containerId?: string
    description: string
    transactionQuantity: number
    timestamp: string
    }
    context: {
    country: string
    warehouse: string
    }
    }
  • Interfaz de salida:

    interface Restocking {
    id: string
    productId: string
    locationIds: string[]
    state: 'critical' | 'warning'
    expectedStock: number
    warehouse: string
    }
  • Flujo principal:

    1. Recibir evento de transacción de entrada desde la cola
    2. Validar que el tipo de evento es ‘InputTransaction’
    3. Validar que la entrada está en una ubicación de picking o preparation
    4. Obtener alerta de reabastecimiento activa para el producto en la ubicación especificada
    5. Registrar la entrada como una operación de reabastecimiento
    6. Eliminar el mensaje de la cola
    7. Registrar el procesamiento exitoso
  • Reglas de negocio:

    • Solo se procesan eventos de tipo ‘InputTransaction’
    • Solo se consideran entradas en ubicaciones de picking o preparation
    • El producto debe tener una alerta de reabastecimiento activa
  • Adaptadores implicados:

    • QueueService: Para recibir y eliminar mensajes
    • RestockingService: Para obtener alertas activas y registrar reabastecimientos
  • Excepciones:

    • EventTypeUnprocessableError: Si el tipo de evento no es ‘InputTransaction’
    • NotInputInPickingError: Si la entrada no está en una ubicación de picking o preparation
    • RestockingNotFoundError: Si no se encuentra una alerta de reabastecimiento activa para el producto
    • RestockingServiceError: Si hay un error en el servicio de reabastecimiento
    • GettingQueueMessageError: Si hay un error al obtener mensajes de la cola
    • DeleteQueueMessageError: Si hay un error al eliminar mensajes de la cola
  • Descripción: Ejecuta el worker para procesar continuamente mensajes de la cola.

  • Interfaz de entrada: Ninguna (activado por un trabajo cron o manualmente)

  • Interfaz de salida: Ninguna (registra estadísticas de procesamiento)

  • Flujo principal:

    1. Recibir hasta 10 mensajes de la cola
    2. Procesar cada mensaje utilizando el caso de uso Procesar Transacción de Entrada
    3. Eliminar los mensajes procesados con éxito de la cola
    4. Registrar estadísticas de procesamiento (mensajes totales, éxitos, fallos, tiempo de procesamiento)
  • Reglas de negocio:

    • Los mensajes que fallan con ciertos errores “aceptables” también se eliminan de la cola
    • Los mensajes que fallan con otros errores permanecen en la cola para reintento
  • Adaptadores implicados:

    • QueueService: Para recibir y eliminar mensajes
    • AutoRestockProcessor: Para procesar mensajes individuales
  • Excepciones:

    • Varios errores del caso de uso Procesar Transacción de Entrada
    • Errores inesperados durante la ejecución del worker