import { IsEmail, IsNotEmpty, IsObject, IsOptional, IsPhoneNumber, IsString } from 'class-validator'; import { config } from '../../../config'; import { Address } from '../../entities/Address'; /** * This classed is used to create a new Participant entity from a json body (post request). */ export abstract class CreateParticipant { /** * The new participant's first name. */ @IsString() @IsNotEmpty() firstname: string; /** * The new participant's middle name. */ @IsString() @IsOptional() middlename?: string; /** * The new participant's last name. */ @IsString() @IsNotEmpty() lastname: string; /** * The new participant's phone number. * This will be validated against the configured country phone numer syntax (default: international). */ @IsString() @IsOptional() @IsPhoneNumber(config.phone_validation_countrycode) phone?: string; /** * The new participant's e-mail address. */ @IsString() @IsOptional() @IsEmail() email?: string; /** * The new participant's address. */ @IsOptional() @IsObject() address?: Address; }