Use Cases
Este documento detalla los principales casos de uso implementados en el microservicio op-scanner, organizados por categorías funcionales.
Casos de Uso
Section titled “Casos de Uso”Scan Text
Section titled “Scan Text”-
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:
- Validar los parámetros de entrada (text, country, warehouse)
- Determinar qué tipos de escaneo verificar (todos los tipos si no se especifica)
- Filtrar tipos de escaneo basados en el formato del texto usando expresiones regulares
- Para cada tipo coincidente, llamar al método de búsqueda correspondiente
- 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 conocidoProductNotFoundError: Cuando no se encuentra un producto con el EAN dadoLocationNotFoundError: Cuando no se encuentra una ubicación con el nombre dadoContainerNotFoundError: Cuando no se encuentra un contenedor con el nombre dadoSupplyNotFoundError: Cuando no se encuentra un suministro con el código de barras dadoUnexpectedError: Para cualquier error inesperado durante el procesamiento
Find Product
Section titled “Find Product”-
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:
- Validar el código EAN
- Llamar al servicio de productos para recuperar información del producto
- Si el producto no se encuentra con el EAN completo, intentar con los primeros 7 dígitos
- 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
Find Supply
Section titled “Find Supply”-
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:
- Validar el código de barras
- Llamar al servicio de suministros para recuperar información del suministro
- 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
Find Location
Section titled “Find Location”-
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:
- Validar el nombre de la ubicación
- Llamar al servicio de ubicaciones para recuperar información de la ubicación
- Llamar al servicio de contenedores para recuperar contenedores en la ubicación
- 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
Find Container
Section titled “Find Container”-
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:
- Validar el nombre del contenedor
- Llamar al servicio de contenedores para recuperar información del contenedor
- Llamar al servicio de ubicaciones para recuperar información de la ubicación del contenedor
- Actualizar la ubicación del contenedor con la información completa de la ubicación
- 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 dadoLocationNotFoundError: Cuando no se encuentra la ubicación del contenedor