mirror of
https://github.com/SyncrowIOT/backend.git
synced 2026-10-24 07:27:55 +00:00
67 lines
1.6 KiB
TypeScript
67 lines
1.6 KiB
TypeScript
import { IsDate, IsOptional } from 'class-validator';
|
|
import { IsPageRequestParam } from '../validators/is-page-request-param.validator';
|
|
import { ApiProperty } from '@nestjs/swagger';
|
|
import { IsSizeRequestParam } from '../validators/is-size-request-param.validator';
|
|
import { Transform } from 'class-transformer';
|
|
import { parseToDate } from '../util/parseToDate';
|
|
|
|
export class PaginationRequestGetListDto {
|
|
@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;
|
|
|
|
@IsOptional()
|
|
@ApiProperty({
|
|
name: 'name',
|
|
required: false,
|
|
description: 'Name to be filtered',
|
|
})
|
|
name?: string;
|
|
|
|
@ApiProperty({
|
|
name: 'from',
|
|
required: false,
|
|
type: Number,
|
|
description: `Start time in UNIX timestamp format to filter`,
|
|
example: 1674172800000,
|
|
})
|
|
@IsOptional()
|
|
@Transform(({ value }) => parseToDate(value))
|
|
@IsDate({
|
|
message: `From must be in UNIX timestamp format in order to parse to Date instance`,
|
|
})
|
|
from?: Date;
|
|
|
|
@ApiProperty({
|
|
name: 'to',
|
|
required: false,
|
|
type: Number,
|
|
description: `End time in UNIX timestamp format to filter`,
|
|
example: 1674259200000,
|
|
})
|
|
@IsOptional()
|
|
@Transform(({ value }) => parseToDate(value))
|
|
@IsDate({
|
|
message: `To must be in UNIX timestamp format in order to parse to Date instance`,
|
|
})
|
|
to?: Date;
|
|
}
|