83
									
								
								src/models/TrackScan.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								src/models/TrackScan.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,83 @@
 | 
				
			|||||||
 | 
					import { PrimaryGeneratedColumn, Column } from "typeorm";
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					  IsBoolean,
 | 
				
			||||||
 | 
					  IsDateString,
 | 
				
			||||||
 | 
					  IsInt,
 | 
				
			||||||
 | 
					  IsNotEmpty,
 | 
				
			||||||
 | 
					  IsOptional,
 | 
				
			||||||
 | 
					  IsPositive,
 | 
				
			||||||
 | 
					} from "class-validator";
 | 
				
			||||||
 | 
					import { Scan } from "./Scan";
 | 
				
			||||||
 | 
					import { Runner } from "./Runner";
 | 
				
			||||||
 | 
					import { Track } from "./Track";
 | 
				
			||||||
 | 
					import { RunnerCard } from "./RunnerCard";
 | 
				
			||||||
 | 
					import { ScanStation } from "./ScanStation";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Defines the scan interface.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					export class TrackScan extends Scan {
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Autogenerated unique id (primary key).
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  @PrimaryGeneratedColumn()
 | 
				
			||||||
 | 
					  @IsOptional()
 | 
				
			||||||
 | 
					  @IsInt()
 | 
				
			||||||
 | 
					  id: number;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * The associated runner.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  @Column()
 | 
				
			||||||
 | 
					  @IsNotEmpty()
 | 
				
			||||||
 | 
					  //TODO: Relationship
 | 
				
			||||||
 | 
					  runner: Runner;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * The associated track.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  @Column()
 | 
				
			||||||
 | 
					  @IsNotEmpty()
 | 
				
			||||||
 | 
					  //TODO: Relationship
 | 
				
			||||||
 | 
					  track: Track;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * The associated card.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  @Column()
 | 
				
			||||||
 | 
					  @IsNotEmpty()
 | 
				
			||||||
 | 
					  //TODO: Relationship
 | 
				
			||||||
 | 
					  card: RunnerCard;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * The scanning station.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  @Column()
 | 
				
			||||||
 | 
					  @IsNotEmpty()
 | 
				
			||||||
 | 
					  //TODO: Relationship
 | 
				
			||||||
 | 
					  station: ScanStation;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * The scan's distance in meters.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  @IsInt()
 | 
				
			||||||
 | 
					  @IsPositive()
 | 
				
			||||||
 | 
					  public get distance(): number {
 | 
				
			||||||
 | 
					    return this.track.distance;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * The scan's creation timestamp.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  @Column()
 | 
				
			||||||
 | 
					  @IsDateString()
 | 
				
			||||||
 | 
					  @IsNotEmpty()
 | 
				
			||||||
 | 
					  timestamp: string;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Is the scan valid (for fraud reasons).
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  @Column()
 | 
				
			||||||
 | 
					  @IsBoolean()
 | 
				
			||||||
 | 
					  valid = true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user