import { IsInt, IsObject, IsString } from "class-validator"; import { Address } from '../entities/Address'; import { GroupContact } from '../entities/GroupContact'; import { ResponseRunnerGroup } from './ResponseRunnerGroup'; /** * Defines the group contact response. */ export class ResponseGroupContact { /** * The contact's id. */ @IsInt() id: number; /** * The contact's first name. */ @IsString() firstname: string; /** * The contact's middle name. */ @IsString() middlename?: string; /** * The contact's last name. */ @IsString() lastname: string; /** * The contact's phone number. */ @IsString() phone?: string; /** * The contact's e-mail address. */ @IsString() email?: string; /** * The contact's associated runner groups. */ @IsObject() groups: ResponseRunnerGroup[]; /** * The contact's address. * This is a address object to prevent any formatting differences. */ @IsObject() address?: Address; /** * Creates a ResponseGroupContact object from a contact. * @param contact The contact the response shall be build for. */ public constructor(contact: GroupContact) { this.id = contact.id; this.firstname = contact.firstname; this.middlename = contact.middlename; this.lastname = contact.lastname; this.phone = contact.phone; this.email = contact.email; this.address = contact.address; this.groups = new Array(); for (let group of contact.groups) { this.groups.push(group.toResponse()); } } }