import { ApiProperty } from '@nestjs/swagger'; import { Transform } from 'class-transformer'; import { IsBoolean, IsOptional } from 'class-validator'; import { BooleanValues } from '../constants/boolean-values.enum'; import { IsPageRequestParam } from '../validators/is-page-request-param.validator'; import { IsSizeRequestParam } from '../validators/is-size-request-param.validator'; export class PaginationRequestGetListDto { @ApiProperty({ example: true, description: 'include spaces', required: false, default: false, }) @IsOptional() @IsBoolean() @Transform((value) => { return value.obj.includeSpaces === BooleanValues.TRUE; }) public includeSpaces?: boolean = false; @IsOptional() @IsPageRequestParam({ message: 'Page must be bigger than 0', }) @ApiProperty({ name: 'page', required: false, description: 'Page request', }) page?: number; @IsOptional() @IsSizeRequestParam({ message: 'Size must not be negative', }) @ApiProperty({ name: 'size', required: false, description: 'Size request', }) size?: number; }