Use Cases
Este documento detalla los principales casos de uso implementados en el worker op-restocking-evaluator.
Casos de Uso
Section titled “Casos de Uso”Procesar Evaluación de Reabastecimiento
Section titled “Procesar Evaluación de Reabastecimiento”- Descripción: Evalúa si un producto necesita reabastecimiento basándose en los niveles actuales de inventario, demanda y reglas de negocio.
- Interfaz de entrada:
interface ProcessInput {ean: stringcountry: stringwarehouse: string}
- Interfaz de salida:
interface ProcessOutput {id: stringean: stringlevel: RestockingLeveltype: stringwarehouse: stringcountry: stringcreatedAt: stringupdatedAt: string}
- Flujo principal:
- Obtener categoría de demanda y demanda predeterminada para el producto
- Determinar la demanda a utilizar para la evaluación (demanda de categoría o demanda predeterminada)
- Obtener la regla de reabastecimiento y el stock actual en picking
- Calcular umbrales de advertencia y críticos basados en la demanda y la regla
- Evaluar si se necesita reabastecimiento basado en el stock actual y los umbrales
- Verificar si ya existe una alerta de reabastecimiento
- Crear una nueva alerta de reabastecimiento o actualizar una existente
- Reglas de negocio:
- Si tanto la demanda de categoría como la demanda predeterminada son cero, devolver un error
- Si la demanda de categoría es cero, usar la demanda predeterminada
- Si el stock en picking está por encima del umbral de advertencia, no se necesita reabastecimiento
- Si el stock en picking está entre los umbrales de advertencia y crítico, crear una alerta de advertencia
- Si el stock en picking está por debajo del umbral crítico, crear una alerta crítica
- Adaptadores implicados:
- Demand Service
- Product Service
- Rule Service
- Inventory Service
- Restocking Service
- Excepciones:
ZeroDemandError: Cuando tanto la demanda de categoría como la demanda predeterminada son ceroRestockingNoRequiredError: Cuando el stock en picking está por encima del umbral de advertenciaBusinessError: Para errores inesperados
Procesar Mensajes de Cola
Section titled “Procesar Mensajes de Cola”- Descripción: Procesa mensajes de la cola SQS, extrayendo información del producto y desencadenando evaluaciones de reabastecimiento.
- Interfaz de entrada:
// Sin interfaz de entrada explícita, desencadenado por la ejecución del worker
- Interfaz de salida:
interface WorkerResult {events: PairOfReceiptAndMessage[]success: string[]failed: BusinessError[]}
- Flujo principal:
- Recibir hasta 10 mensajes de la cola SQS
- Para cada mensaje, validar el tipo de evento
- Extraer EAN del producto, almacén y país del mensaje
- Procesar la evaluación de reabastecimiento para el producto
- Eliminar el mensaje de la cola si el procesamiento tiene éxito
- Manejar errores de negocio según su tipo
- Registrar resultados de procesamiento
- Reglas de negocio:
- Solo procesar mensajes con el tipo de evento correcto
- Eliminar mensajes de la cola después de un procesamiento exitoso
- Eliminar mensajes con errores no recuperables (p.ej., demanda cero, no se necesita reabastecimiento)
- Mantener mensajes con errores recuperables en la cola para reintento
- Adaptadores implicados:
- Queue Service
- Restocking Evaluator Processor
- Excepciones:
EventTypeUnprocessableError: Cuando el tipo de evento no es compatibleZeroDemandError: Cuando tanto la demanda de categoría como la demanda predeterminada son ceroRestockingNoRequiredError: Cuando el stock en picking está por encima del umbral de advertenciaProductNotFoundError: Cuando no se encuentra el productoUnexpectedError: Para errores inesperados