Build and refactor list and search query handling in the Swoosh backend using the project's DTO-to-query-options pattern. Use when adding filtered list endpoints, query DTOs, query transforms, sort and limit options, or feature-local filter builders for Mongoose queries.
Use docs/rules/backend-architecture.md for the stable query-endpoint boundaries and docs/rules/auth-and-api-contracts.md when the endpoint contract is public or documented. This skill covers the task-specific workflow for building a filtered list flow.
$swoosh-backend-module.$nestjs-swagger-docs.$swoosh-backend-review.FindAll...Dto, src/shared/utils/query.utils.ts, and the module's .<module>.utils.tsFindAllProductsDto.class-transformer and class-validator.<module>.swagger.ts....PropertyDocs wrappers instead of raw ApiProperty blocks.toStringArrayQueryParam and toNumberArrayQueryParam for array-like query values.src/shared/utils only when multiple modules benefit.buildProductListQueryOptions(dto).{ filters, sort, limit }.$gte and $lte..find(filters).sort(sort).limit(limit).req.query inside services