import { autoserializeAs, Command, inheritSerialization, serializable, Validators } from '@my-devkit/core'; import { EnvironmentCategory } from '@we-scrum/enums'; @serializable @inheritSerialization(Command) export class CreateEnvironmentCommand extends Command { @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public projectId: string = null; @Validators.IsNotEmpty() @Validators.IsEnum(EnvironmentCategory) @autoserializeAs(EnvironmentCategory) public category: EnvironmentCategory = null; @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public name: string = null; @Validators.IsOptionalIf((c) => c.category !== EnvironmentCategory.Development) @Validators.IsNotEmptyIf((c) => c.category === EnvironmentCategory.Development) @Validators.IsEmptyIf((c) => c.category !== EnvironmentCategory.Development) @Validators.IsString() @autoserializeAs(String) public developerPrefix: string = null; constructor() { super('CreateEnvironmentCommand'); } }