Implement pagination response handling and related enhancements

- Introduced `@Pagination()` decorator to mark list endpoints for pagination.
- Added `TransformInterceptor` to wrap responses in a standardized format `{ data, meta }`.
- Created pagination-related utility functions and constants for managing pagination logic.
- Defined `PaginationQueryDto` for handling pagination query parameters.
- Established `PaginationMetaDto` for OpenAPI documentation of pagination metadata.
- Updated existing controller and service structures to support pagination in responses.
- Added unit tests for pagination utilities and interceptor to ensure correct functionality.
This commit is contained in:
shancheas
2026-08-21 15:56:54 +07:00
parent d01fd6e2ef
commit 0550cbe764
28 changed files with 1177 additions and 19 deletions
+8 -3
View File
@@ -11,8 +11,12 @@ Stack: NestJS + PostgreSQL + Drizzle ORM. Follow `.agents/skills/nestjs-best-pra
## Modules
- One feature folder under `src/modules/`
- Each feature has `*.module.ts`, `*.controller.ts`, `*.service.ts`, `dto/`
- Share cross-cutting code via `src/common/` (filters, guards, pipes, interceptors)
- **Main (CRUD) features:** `*.module.ts`, `*-read.controller.ts`, `*-write.controller.ts`, service(s), repository, `dto/`
- **Auth-style / non-CRUD modules** may keep a single `*.controller.ts`
- Share cross-cutting code via `src/common/` (filters, guards, pipes, interceptors, HTTP response helpers)
- Primary entities: `.cursor/rules/primary-entity.mdc`, `.cursor/rules/status.mdc`
- Read/write split: `.cursor/rules/read-write-controllers.mdc`
- List pagination: `.cursor/rules/pagination-response.mdc`
- Document HTTP endpoints per `.cursor/rules/nestjs-swagger.mdc`
## Tests
@@ -24,6 +28,7 @@ Stack: NestJS + PostgreSQL + Drizzle ORM. Follow `.agents/skills/nestjs-best-pra
## Database
- Schema and SQL migrations in `drizzle/`
- Schema and SQL migrations in `drizzle/` (table defs may live in `src/database/schema.ts`)
- Primary tables spread `primaryEntityColumns(users)` from `src/database/primary-entity-columns.ts`
- Config in `drizzle.config.ts`
- Never mutate production schema without a migration