49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
import { ValidationModel } from "../../core/model/validation_model";
|
|
import { Type } from "class-transformer";
|
|
import { IsEnum, IsNotEmpty, IsString } from "class-validator";
|
|
import { FormBuilderValidationModel } from "../../core/model/form_builder_validation_model";
|
|
|
|
export enum DigitalTwinsTypes {
|
|
CAMERA = "CAMERA",
|
|
ROBOT = "ROBOT",
|
|
}
|
|
export class Interfaces {
|
|
@IsString()
|
|
cmd: string;
|
|
}
|
|
|
|
export class DigitalTwinsModel extends ValidationModel {
|
|
_id?: string;
|
|
path: string = "";
|
|
name: string = "";
|
|
instanceName: string = "";
|
|
@IsEnum(DigitalTwinsTypes)
|
|
entity: DigitalTwinsTypes;
|
|
@IsString()
|
|
description: string;
|
|
@IsString()
|
|
command: string;
|
|
@Type(() => Interfaces)
|
|
interfaces: Interfaces;
|
|
@IsNotEmpty()
|
|
@IsString()
|
|
package: string;
|
|
@IsNotEmpty()
|
|
@IsString()
|
|
executable: string;
|
|
formBuilder = FormBuilderValidationModel.empty();
|
|
static empty() {
|
|
return new DigitalTwinsModel();
|
|
}
|
|
}
|
|
export interface DigitalTwinsTemplate {
|
|
interfaces: Interfaces;
|
|
_id?: string;
|
|
path: string;
|
|
name: string;
|
|
entity: string;
|
|
description: string;
|
|
command: string;
|
|
__v: string;
|
|
formBuilder?: FormBuilderValidationModel;
|
|
}
|