import { IsDateString, IsNotEmpty } from "class-validator"; import { RunnerCard } from '../entities/RunnerCard'; import { ScanStation } from '../entities/ScanStation'; import { TrackScan } from '../entities/TrackScan'; import { ResponseScan } from './ResponseScan'; import { ResponseTrack } from './ResponseTrack'; /** * Defines the trackScan response. */ export class ResponseTrackScan extends ResponseScan { /** * The scan's associated track. */ @IsNotEmpty() track: ResponseTrack; /** * The runnerCard associated with the scan. */ @IsNotEmpty() card: RunnerCard; /** * The scanning station that created the scan. */ @IsNotEmpty() station: ScanStation; /** * The scan's creation timestamp. */ @IsDateString() @IsNotEmpty() timestamp: string; /** * Creates a ResponseTrackScan object from a scan. * @param scan The trackSscan the response shall be build for. */ public constructor(scan: TrackScan) { super(scan); this.track = new ResponseTrack(scan.track); this.card = scan.card; this.station = scan.station; this.timestamp = scan.timestamp; } }