Files
gridpilot.gg/apps/api/src/domain/race/dtos/ApplyPenaltyCommandDTO.ts
2026-01-16 21:44:26 +01:00

44 lines
887 B
TypeScript

import { PENALTY_TYPE_VALUES } from '@core/racing/domain/entities/penalty/PenaltyType';
import { ApiProperty } from '@nestjs/swagger';
import { IsEnum, IsNotEmpty, IsNumber, IsOptional, IsString } from 'class-validator';
export class ApplyPenaltyCommandDTO {
@ApiProperty()
@IsString()
@IsNotEmpty()
raceId!: string;
@ApiProperty()
@IsString()
@IsNotEmpty()
driverId!: string;
@ApiProperty()
@IsString()
@IsNotEmpty()
stewardId!: string;
@ApiProperty({ enum: PENALTY_TYPE_VALUES })
@IsEnum(PENALTY_TYPE_VALUES)
type!: string;
@ApiProperty({ required: false })
@IsOptional()
@IsNumber()
value?: number;
@ApiProperty()
@IsString()
@IsNotEmpty()
reason!: string;
@ApiProperty({ required: false })
@IsOptional()
@IsString()
protestId?: string;
@ApiProperty({ required: false })
@IsOptional()
@IsString()
notes?: string;
}