import { autoserializeAs, Command, inheritSerialization, serializable, Validators } from '@my-devkit/core'; import { MonitoringAlertSeverityLevel } from '@we-scrum/enums'; export class CreateMonitoringAlertCommandAction { @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public label: string = null; @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public url: string = null; } export class CreateMonitoringAlertCommandData { @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public category: string = null; @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public label: string = null; @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public value: string = null; } @serializable @inheritSerialization(Command) export class CreateMonitoringAlertCommand extends Command { @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public environmentId: string = null; @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public identificationNumber: string = null; @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public title: string = null; @Validators.IsOptional() @Validators.IsString() @autoserializeAs(String) public subtitle: string = null; @Validators.IsNotEmpty() @Validators.IsEnum(MonitoringAlertSeverityLevel) @autoserializeAs(MonitoringAlertSeverityLevel) public severityLevel: MonitoringAlertSeverityLevel = null; @Validators.IsNotEmpty() @Validators.IsArray() @Validators.ValidateNested() @autoserializeAs(CreateMonitoringAlertCommandData) public data: CreateMonitoringAlertCommandData[] = []; @Validators.IsNotEmpty() @Validators.IsArray() @Validators.ValidateNested() @autoserializeAs(CreateMonitoringAlertCommandAction) public actions: CreateMonitoringAlertCommandAction[] = []; @Validators.IsNotEmpty() @Validators.IsDate() @autoserializeAs(Date) public createdAt: Date = null; constructor() { super('CreateMonitoringAlertCommand'); } }