diff --git a/src/core/modules/infrastructure/dto/base-filter.dto.ts b/src/core/modules/infrastructure/dto/base-filter.dto.ts index b149663..a33dec5 100644 --- a/src/core/modules/infrastructure/dto/base-filter.dto.ts +++ b/src/core/modules/infrastructure/dto/base-filter.dto.ts @@ -23,6 +23,7 @@ export class BaseFilterDto implements BaseFilterEntity { @IsNumber() limit = 10; + @ApiProperty({ type: String, required: false }) q: string; @ApiProperty({ type: ['string'], required: false }) diff --git a/src/modules/item-related/item/domain/usecases/managers/index-item.manager.ts b/src/modules/item-related/item/domain/usecases/managers/index-item.manager.ts index 4da5d1a..3c51840 100644 --- a/src/modules/item-related/item/domain/usecases/managers/index-item.manager.ts +++ b/src/modules/item-related/item/domain/usecases/managers/index-item.manager.ts @@ -84,6 +84,12 @@ export class IndexItemManager extends BaseIndexManager { setQueryFilter( queryBuilder: SelectQueryBuilder, ): SelectQueryBuilder { + if (this.filterParam.q) { + queryBuilder.andWhere( + `${this.tableName}.name ILIKE '%${this.filterParam.q}%'`, + ); + } + if (this.filterParam.tenant_ids?.length) { queryBuilder.andWhere(`${this.tableName}.tenant_id In (:...tenantIds)`, { tenantIds: this.filterParam.tenant_ids,