import { Contains, IsInt, MinLength, MaxLength, IsEmail, IsFQDN, IsDate, ArrayNotEmpty, ArrayMinSize, ArrayMaxSize, IsEnum, } from '../../src/decorator/decorators'; export enum PostType { Public, Private, } export class Post { @MinLength(10) @MaxLength(20) title: string; @Contains('hello') text: string; @IsInt() rating: number; @IsEmail() email: string; @IsFQDN() site: string; @IsDate() createDate: Date; @ArrayNotEmpty() @ArrayMinSize(2) @ArrayMaxSize(5) @MinLength(3, { each: true, message: 'Tag is too short. Minimal length is $value characters' }) @MaxLength(50, { each: true, message: 'Tag is too long. Maximal length is $value characters' }) tags: string[]; @IsEnum(PostType) type: PostType; }