src/session/dto/session-query.dto.ts
Query parameters for filtering and paginating the session list.
createZodDto(SessionQuerySchema)
No results matching.
Properties |
| page |
Type : number
|
Default value : 1
|
Decorators :
@ApiPropertyOptional({description: 'Page number (1-based)', default: 1, minimum: 1})
|
|
Defined in src/session/dto/session-query.dto.ts:34
|
|
Page number (1-based). |
| pageSize |
Type : number
|
Default value : 25
|
Decorators :
@ApiPropertyOptional({description: 'Number of items per page', default: 25, minimum: 1, maximum: 100})
|
|
Defined in src/session/dto/session-query.dto.ts:45
|
|
Number of items per page (max 100). |
| Optional sortBy |
Type : SessionSortBy
|
Decorators :
@ApiPropertyOptional({enum: undefined, description: 'Field to sort by'})
|
|
Defined in src/session/dto/session-query.dto.ts:72
|
|
Field to sort by. |
| Optional sortOrder |
Type : SessionSortOrder
|
Decorators :
@ApiPropertyOptional({enum: undefined, description: 'Sort direction'})
|
|
Defined in src/session/dto/session-query.dto.ts:81
|
|
Sort order (asc or desc). |
| Optional status |
Type : SessionStatus
|
Decorators :
@ApiPropertyOptional({enum: SessionStatus, description: 'Filter by session status'})
|
|
Defined in src/session/dto/session-query.dto.ts:54
|
|
Filter sessions by status. |
| Optional type |
Type : SessionType
|
Decorators :
@ApiPropertyOptional({enum: undefined, description: 'Filter by session type'})
|
|
Defined in src/session/dto/session-query.dto.ts:63
|
|
Filter sessions by type (issuance or presentation). |
import { ApiPropertyOptional } from "@nestjs/swagger";
import { createZodDto } from "nestjs-zod";
import { z } from "zod";
import { SessionStatus } from "../entities/session.entity";
export type SessionSortBy = "id" | "status" | "createdAt" | "requestId";
export type SessionSortOrder = "asc" | "desc";
export type SessionType = "issuance" | "presentation";
const SessionQuerySchema = z
.object({
page: z.coerce.number().int().min(1).default(1),
pageSize: z.coerce.number().int().min(1).max(100).default(25),
status: z.enum(SessionStatus).optional(),
type: z.enum(["issuance", "presentation"]).optional(),
sortBy: z.enum(["id", "status", "createdAt", "requestId"]).optional(),
sortOrder: z.enum(["asc", "desc"]).optional(),
})
.strict();
/**
* Query parameters for filtering and paginating the session list.
*/
export class SessionQueryDto extends createZodDto(SessionQuerySchema) {
/**
* Page number (1-based).
*/
@ApiPropertyOptional({
description: "Page number (1-based)",
default: 1,
minimum: 1,
})
page: number = 1;
/**
* Number of items per page (max 100).
*/
@ApiPropertyOptional({
description: "Number of items per page",
default: 25,
minimum: 1,
maximum: 100,
})
pageSize: number = 25;
/**
* Filter sessions by status.
*/
@ApiPropertyOptional({
enum: SessionStatus,
description: "Filter by session status",
})
status?: SessionStatus;
/**
* Filter sessions by type (issuance or presentation).
*/
@ApiPropertyOptional({
enum: ["issuance", "presentation"],
description: "Filter by session type",
})
type?: SessionType;
/**
* Field to sort by.
*/
@ApiPropertyOptional({
enum: ["id", "status", "createdAt", "requestId"],
description: "Field to sort by",
})
sortBy?: SessionSortBy;
/**
* Sort order (asc or desc).
*/
@ApiPropertyOptional({
enum: ["asc", "desc"],
description: "Sort direction",
})
sortOrder?: SessionSortOrder;
}