Skip to content

Use Cases

Este documento detalla los principales casos de uso implementados en el microservicio op-scanner, organizados por categorías funcionales.

  • Descripción: Identifica el tipo de entidad (product, supply, location o container) basado en texto escaneado y recupera información detallada sobre la entidad.

  • Interfaz de entrada:

    interface ScanParams {
    text: string;
    types?: ScanType[];
    country: string;
    warehouse: string;
    }
  • Interfaz de salida:

    type ScanInfo =
    | ScanProductInfo
    | ScanSupplyInfo
    | ScanLocationInfo
    | ScanContainerInfo;
  • Flujo principal:

    1. Validar los parámetros de entrada (text, country, warehouse)
    2. Determinar qué tipos de escaneo verificar (todos los tipos si no se especifica)
    3. Filtrar tipos de escaneo basados en el formato del texto usando expresiones regulares
    4. Para cada tipo coincidente, llamar al método de búsqueda correspondiente
    5. Devolver el primer resultado exitoso, o un error si no se encuentra ninguna entidad
  • Reglas de negocio:

    • El texto debe coincidir con el formato esperado para al menos un tipo de entidad
    • Country y warehouse deben ser válidos
    • Para productos, si no se encuentra el EAN completo, intentar con los primeros 7 dígitos
  • Adaptadores implicados:

    • Product Service: Para recuperar información de productos por EAN
    • Location Service: Para recuperar información de ubicaciones por nombre
    • Container Service: Para recuperar información de contenedores por nombre
    • Supply Service: Para recuperar información de suministros por código de barras
  • Excepciones:

    • UnrecognizedTextError: Cuando el texto escaneado no coincide con ningún formato conocido
    • ProductNotFoundError: Cuando no se encuentra un producto con el EAN dado
    • LocationNotFoundError: Cuando no se encuentra una ubicación con el nombre dado
    • ContainerNotFoundError: Cuando no se encuentra un contenedor con el nombre dado
    • SupplyNotFoundError: Cuando no se encuentra un suministro con el código de barras dado
    • UnexpectedError: Para cualquier error inesperado durante el procesamiento
  • Descripción: Encuentra un producto por su código EAN.

  • Entrada:

    • Código EAN (string)
    • Country (string)
    • Warehouse (string)
  • Salida:

    • Información del producto o error
  • Flujo principal:

    1. Validar el código EAN
    2. Llamar al servicio de productos para recuperar información del producto
    3. Si el producto no se encuentra con el EAN completo, intentar con los primeros 7 dígitos
    4. Devolver la información del producto o un error
  • Reglas de negocio:

    • El código EAN debe ser válido
    • Country y warehouse deben ser válidos
  • Adaptadores implicados:

    • Product Service
  • Excepciones:

    • ProductNotFoundError: Cuando no se encuentra un producto con el EAN dado
  • Descripción: Encuentra un suministro por su código de barras.

  • Entrada:

    • Código de barras (string)
    • Country (string)
    • Warehouse (string)
  • Salida:

    • Información del suministro o error
  • Flujo principal:

    1. Validar el código de barras
    2. Llamar al servicio de suministros para recuperar información del suministro
    3. Devolver la información del suministro o un error
  • Reglas de negocio:

    • El código de barras debe ser válido
    • Country y warehouse deben ser válidos
  • Adaptadores implicados:

    • Supply Service
  • Excepciones:

    • SupplyNotFoundError: Cuando no se encuentra un suministro con el código de barras dado
  • Descripción: Encuentra una ubicación por su nombre y recupera los contenedores en esa ubicación.

  • Entrada:

    • Nombre de ubicación (string)
    • Country (string)
    • Warehouse (string)
  • Salida:

    • Información de la ubicación, total de contenedores y primer contenedor (si solo existe uno) o error
  • Flujo principal:

    1. Validar el nombre de la ubicación
    2. Llamar al servicio de ubicaciones para recuperar información de la ubicación
    3. Llamar al servicio de contenedores para recuperar contenedores en la ubicación
    4. Devolver la información de la ubicación, total de contenedores y primer contenedor (si solo existe uno) o un error
  • Reglas de negocio:

    • El nombre de la ubicación debe ser válido
    • Country y warehouse deben ser válidos
  • Adaptadores implicados:

    • Location Service
    • Container Service
  • Excepciones:

    • LocationNotFoundError: Cuando no se encuentra una ubicación con el nombre dado
  • Descripción: Encuentra un contenedor por su nombre.

  • Entrada:

    • Nombre del contenedor (string)
    • Country (string)
    • Warehouse (string)
  • Salida:

    • Información del contenedor o error
  • Flujo principal:

    1. Validar el nombre del contenedor
    2. Llamar al servicio de contenedores para recuperar información del contenedor
    3. Llamar al servicio de ubicaciones para recuperar información de la ubicación del contenedor
    4. Actualizar la ubicación del contenedor con la información completa de la ubicación
    5. Devolver la información del contenedor o un error
  • Reglas de negocio:

    • El nombre del contenedor debe ser válido
    • Country y warehouse deben ser válidos
  • Adaptadores implicados:

    • Container Service
    • Location Service
  • Excepciones:

    • ContainerNotFoundError: Cuando no se encuentra un contenedor con el nombre dado
    • LocationNotFoundError: Cuando no se encuentra la ubicación del contenedor