import { autoserializeAs, Command, inheritSerialization, serializable, Validators } from '@my-devkit/core'; import { StoreSystem } from '@we-scrum/enums'; export class UpdateEnvironmentEventStoreSystemCommandMonitoredPeriodicEvent { @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public eventType: string = null; @Validators.IsNotEmpty() @Validators.IsNumber() @Validators.IsPositive() @autoserializeAs(Number) public maximumIdleTimeInMinutes: number = null; } @serializable @inheritSerialization(Command) export class UpdateEnvironmentEventStoreSystemCommand extends Command { @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public environmentId: string = null; @Validators.IsNotEmpty() @Validators.IsEnum(StoreSystem) @autoserializeAs(StoreSystem) public storeSystem: StoreSystem = null; @Validators.IsOptionalIf((o) => o.storeSystem === StoreSystem.None) @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public endpoint: string = null; @Validators.IsOptionalIf((o) => o.storeSystem === StoreSystem.None) @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public accountKey: string = null; @Validators.IsOptionalIf((o) => o.storeSystem === StoreSystem.None) @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public database: string = null; @Validators.IsOptionalIf((o) => o.storeSystem === StoreSystem.None) @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public container: string = null; @Validators.IsNotEmpty() @Validators.IsArray() @autoserializeAs(UpdateEnvironmentEventStoreSystemCommandMonitoredPeriodicEvent) public monitoredPeriodicEvents: UpdateEnvironmentEventStoreSystemCommandMonitoredPeriodicEvent[] = []; constructor() { super('UpdateEnvironmentEventStoreSystemCommand'); } }