import { ApiProperty } from '@nestjs/swagger'; import { Type } from 'class-transformer'; import { IsNumber, IsOptional, ValidateIf } from 'class-validator'; export enum SortOrder { DESC = 'desc', ASC = 'asc', } export class LimitOffsetParams { @IsNumber() @IsOptional() @Type(() => Number) limit?: number; @IsNumber() @IsOptional() @Type(() => Number) offset?: number; } export class PaginationParams extends LimitOffsetParams { @ApiProperty({ description: 'Sort by field', }) @IsOptional() sortBy?: string; @ApiProperty({ description: 'Sort order - descending (Z => A, New first) or ascending (A => Z, Old first)', }) @IsOptional() sortOrder?: SortOrder; }