Adiciona busca por codauxiliar em findProducts e cria API de busca unificada

- Modifica findProducts para buscar por CODPROD e CODAUXILIAR
- Adiciona testes para o método products
- Cria endpoint unified-search para busca unificada por nome, código de barras ou codprod
- Adiciona @IsOptional aos campos opcionais do ProductDetailQueryDto
- Adiciona testes para products.service
This commit is contained in:
joelson brito
2025-11-10 15:04:07 -03:00
parent 6afba4f3b4
commit e3acf34510
9 changed files with 505 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsArray, IsNotEmpty, IsNumber, IsString } from 'class-validator';
import { IsArray, IsNotEmpty, IsNumber, IsOptional, IsString } from 'class-validator';
/**
* DTO para requisição de detalhes de produtos
@@ -19,6 +19,7 @@ export class ProductDetailQueryDto {
type: [Number],
required: false,
})
@IsOptional()
@IsArray()
codprod?: number[];
@@ -28,6 +29,7 @@ export class ProductDetailQueryDto {
type: [String],
required: false,
})
@IsOptional()
@IsArray()
codauxiliar?: string[];

View File

@@ -0,0 +1,32 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsNotEmpty, IsNumber, IsString } from 'class-validator';
/**
* DTO para busca unificada de produtos
*/
export class UnifiedProductSearchDto {
@ApiProperty({
description: 'Termo de busca (nome, código de barras ou codprod)',
example: '7891234567890',
})
@IsString()
@IsNotEmpty()
search: string;
@ApiProperty({
description: 'Código da região para buscar o preço',
example: 1,
})
@IsNumber()
@IsNotEmpty()
numregiao: number;
@ApiProperty({
description: 'Código da filial',
example: '1',
})
@IsString()
@IsNotEmpty()
codfilial: string;
}