import { IsInt, IsObject, IsString } from "class-validator"; import { Runner } from '../entities/Runner'; import { RunnerGroup } from '../entities/RunnerGroup'; /** * Defines the runner stats response. * This differs from the normal runner responce. */ export class ResponseStatsRunner { /** * The runner's id. */ @IsInt() id: number; /** * The runner's first name. */ @IsString() firstname: string; /** * The runner's middle name. */ @IsString() middlename?: string; /** * The runner's last name. */ @IsString() lastname: string; /** * The runner's currently ran distance in meters. */ @IsInt() distance: number; /** * The runner's currently collected donations. */ @IsInt() donationAmount: 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) { this.id = runner.id; this.firstname = runner.firstname; this.middlename = runner.middlename; this.lastname = runner.lastname; this.distance = runner.distance; this.donationAmount = runner.distanceDonationAmount; this.group = runner.group; } }