Files
web-crm.mcmed.ru/backend/src/common/dto/paging/chat-paging-query.dto.ts
Viktoria Polyakova 4fb101c5db Init
2026-01-25 08:57:38 +00:00

40 lines
979 B
TypeScript

import { ApiPropertyOptional } from '@nestjs/swagger';
import { IsNumber, IsOptional } from 'class-validator';
import { PagingDefault } from '../../constants';
export class ChatPagingQuery {
@ApiPropertyOptional({ description: 'Offset', example: 0 })
@IsOptional()
@IsNumber()
offset?: number;
@ApiPropertyOptional({ description: 'Limit', example: 10 })
@IsOptional()
@IsNumber()
limit?: number;
@ApiPropertyOptional({ description: 'Cursor position for pagination' })
@IsOptional()
@IsNumber()
cursor?: number;
constructor(offset: number | undefined, limit: number | undefined, cursor: number | undefined) {
this.offset = offset;
this.limit = limit;
this.cursor = cursor;
}
static default(): ChatPagingQuery {
return new ChatPagingQuery(undefined, undefined, undefined);
}
get skip(): number {
return this.offset ?? PagingDefault.offset;
}
get take(): number {
return this.limit ?? PagingDefault.limit;
}
}