Newer
Older
import { ObjectivePointEntity } from './game.entity';
import { FactionDTO } from '../faction/faction.dto';
export class NodeCoreSettingsDTO {
@IsNumber()
capture_time: number;
@IsNumber()
confirmation_time: number;
@IsNumber()
owner: number;
@IsNumber()
capture: number;
@IsNumber()
buttons_available: number;
@IsNumber()
heartbeat_interval: number;
}
export class CenterDTO {
@IsNumber()
lat: number;
@IsNumber()
lng: number;
}
export class NodeSettingsDTO {
@ValidateNested()
@Type(() => NodeCoreSettingsDTO)
node_settings: NodeCoreSettingsDTO;
}
name: string;
@IsNotEmpty()
@Length(1, 255)
desc: string;
@ValidateNested()
@Type(() => CenterDTO)
center: CenterDTO;
@Allow()
@ValidateNested()
@Type(() => NodeSettingsDTO)
nodesettings?: NodeSettingsDTO;
@IsDateString()
@IsNotEmpty()
startdate: string;
@IsDateString()
@IsNotEmpty()
enddate: string;
@ValidateNested()
@Type(() => FactionDTO)
@ValidateNested()
@Type(() => FlagboxDTO)
export class newGameDTO {
@IsString()
@IsNotEmpty()
@Length(3, 30)
name: string;
@IsString()
@IsNotEmpty()
@Length(1, 255)
desc: string;
@ValidateNested()
@Type(() => CenterDTO)
center: CenterDTO;
@IsDateString()
@IsNotEmpty()
startdate: string;
@IsDateString()
@IsNotEmpty()
enddate: string;
@IsIn(['CREATED', 'STARTED', 'PAUSED', 'ENDED', 'ONGOING'])
@IsOptional()
@IsUUID('4')
objectivePointId: string;
objectivePointDescription: string;
@IsNumber()
objectivePointMultiplier: number;
owner: number; // owner = 0, => no owner, owner = 1, => first entry in faction db
@IsNumber()
@Min(0)
@Max(3)
action: number; // 0=no capture ongoing, 1=captured, 2=capture ongoing
@IsNumber()
@Min(0)
@Max(3)
capture: number; // which faction is capturing, same logic as in owner with numbers