webstudio/ui/src/features/digital_twins/digital_twins_model.ts
2024-09-24 17:18:56 +03:00

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;
}