import { IsBoolean, IsInt, IsPositive } from "class-validator"; import { Scan } from '../entities/Scan'; import { ResponseRunner } from './ResponseRunner'; /** * Defines the scan response. */ export class ResponseScan { /** * The scans's id. */ @IsInt() id: number;; /** * The scan's associated runner. * This is important to link ran distances to runners. */ // @IsNotEmpty() runner?: ResponseRunner; /** * Is the scan valid (for fraud reasons). * The determination of validity will work differently for every child class. */ @IsBoolean() valid: boolean = true; /** * The scans's length/distance in meters. */ @IsInt() @IsPositive() distance: number; /** * Creates a ResponseScan object from a scan. * @param scan The scan the response shall be build for. */ public constructor(scan: Scan) { this.id = scan.id; this.runner = null; this.distance = scan.distance; this.valid = scan.valid; } }