25 lines
428 B
TypeScript
25 lines
428 B
TypeScript
import { IsString, IsInt, IsEnum, IsOptional, IsObject } from 'class-validator';
|
|
|
|
export enum CalculationRule {
|
|
AVERAGE = 'average',
|
|
MAX = 'max',
|
|
MIN = 'min',
|
|
WEIGHTED = 'weighted',
|
|
}
|
|
|
|
export class CreateReviewRuleDto {
|
|
@IsInt()
|
|
contestId: number;
|
|
|
|
@IsString()
|
|
ruleName: string;
|
|
|
|
@IsObject()
|
|
dimensions: any; // JSON object
|
|
|
|
@IsEnum(CalculationRule)
|
|
@IsOptional()
|
|
calculationRule?: CalculationRule;
|
|
}
|
|
|