Files
gridpilot.gg/apps/api/src/domain/league/dtos/WizardErrorsDTO.ts
2025-12-18 22:19:40 +01:00

92 lines
2.0 KiB
TypeScript

import { ApiProperty } from '@nestjs/swagger';
import { IsOptional, IsString, ValidateNested } from 'class-validator';
import { Type } from 'class-transformer';
class WizardErrorsBasicsDTO {
@ApiProperty({ required: false })
@IsOptional()
@IsString()
name?: string;
@ApiProperty({ required: false })
@IsOptional()
@IsString()
description?: string;
@ApiProperty({ required: false })
@IsOptional()
@IsString()
visibility?: string;
}
class WizardErrorsStructureDTO {
@ApiProperty({ required: false })
@IsOptional()
@IsString()
maxDrivers?: string;
@ApiProperty({ required: false })
@IsOptional()
@IsString()
maxTeams?: string;
@ApiProperty({ required: false })
@IsOptional()
@IsString()
driversPerTeam?: string;
}
class WizardErrorsTimingsDTO {
@ApiProperty({ required: false })
@IsOptional()
@IsString()
qualifyingMinutes?: string;
@ApiProperty({ required: false })
@IsOptional()
@IsString()
mainRaceMinutes?: string;
@ApiProperty({ required: false })
@IsOptional()
@IsString()
roundsPlanned?: string;
}
class WizardErrorsScoringDTO {
@ApiProperty({ required: false })
@IsOptional()
@IsString()
patternId?: string;
}
export class WizardErrorsDTO {
@ApiProperty({ type: WizardErrorsBasicsDTO, required: false })
@IsOptional()
@ValidateNested()
@Type(() => WizardErrorsBasicsDTO)
basics?: WizardErrorsBasicsDTO;
@ApiProperty({ type: WizardErrorsStructureDTO, required: false })
@IsOptional()
@ValidateNested()
@Type(() => WizardErrorsStructureDTO)
structure?: WizardErrorsStructureDTO;
@ApiProperty({ type: WizardErrorsTimingsDTO, required: false })
@IsOptional()
@ValidateNested()
@Type(() => WizardErrorsTimingsDTO)
timings?: WizardErrorsTimingsDTO;
@ApiProperty({ type: WizardErrorsScoringDTO, required: false })
@IsOptional()
@ValidateNested()
@Type(() => WizardErrorsScoringDTO)
scoring?: WizardErrorsScoringDTO;
@ApiProperty({ required: false })
@IsOptional()
@IsString()
submit?: string;
}