import { IsInt, IsObject } from "class-validator"; import { Runner } from '../entities/Runner'; import { RunnerGroup } from '../entities/RunnerGroup'; import { ResponseParticipant } from './ResponseParticipant'; /** * Defines the runner response. */ export class ResponseRunner extends ResponseParticipant { /** * The runner's currently ran distance in meters. */ @IsInt() distance: number; /** * The runner's group. */ @IsObject() group: RunnerGroup; /** * Creates a ResponseRunner object from a runner. * @param runner The user the response shall be build for. */ public constructor(runner: Runner) { super(runner); if (!runner.scans) { this.distance = 0 } else { this.distance = runner.validScans.reduce((sum, current) => sum + current.distance, 0); } this.group = runner.group; } }