import { ApiExtraModels, ApiProperty, PartialType } from "@nestjs/swagger"; import { IsArray } from "class-validator"; import { Order } from "../enums"; import { PageMeta } from "../interfaces/page-meta.interface"; import { PageMetaDto } from "./page-meta.dto"; import { PaperDto } from "./paper.dto"; /** * List of allowed properties in this DTO */ const allowedProperties = ['data', 'meta']; /** * Page model for pagination */ @ApiExtraModels() export class PageDto { /** * Data block of the page */ @IsArray() @ApiProperty({ description: 'All data (papers) the page contains', isArray: true, type: PaperDto }) readonly data: PaperDto[]; /** * Metadata of the page */ @ApiProperty({ description: 'Metadata for the page', // example: {}, }) readonly meta: PageMetaDto; /** * Constructs an object with provided parameters * @param data * @param meta */ constructor(data: PaperDto[], meta: PageMeta) { this.data = data; this.meta = meta; } }