import { autoserializeAs, Command, inheritSerialization, serializable, Validators } from '@my-devkit/core'; import { CraftingMaster, ProgressStatus } from '@we-scrum/enums'; export class UpdateProjectCraftingMasterCommandCraftingMasterConfigStatusRule { @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public boardColumn: string = null; @Validators.IsNotEmpty() @Validators.IsBoolean() @autoserializeAs(Boolean) public boardColumnDone: boolean = false; @Validators.IsOptional() @Validators.IsString() @autoserializeAs(String) public tag: string = null; @Validators.IsNotEmpty() @Validators.IsEnum(ProgressStatus) @autoserializeAs(ProgressStatus) public craftingStatus: ProgressStatus = null; @Validators.IsNotEmpty() @Validators.IsEnum(ProgressStatus) @autoserializeAs(ProgressStatus) public analysisStatus: ProgressStatus = null; @Validators.IsNotEmpty() @Validators.IsEnum(ProgressStatus) @autoserializeAs(ProgressStatus) public developmentStatus: ProgressStatus = null; } export class UpdateProjectCraftingMasterCommandCraftingMasterConfig { @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public organization: string = null; @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public project: string = null; @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public team: string = null; @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public username: string = null; @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public password: string = null; @Validators.IsNotEmpty() @Validators.IsArray() @Validators.ValidateNested() @autoserializeAs(UpdateProjectCraftingMasterCommandCraftingMasterConfigStatusRule) public statusRules: UpdateProjectCraftingMasterCommandCraftingMasterConfigStatusRule[] = []; } @serializable @inheritSerialization(Command) export class UpdateProjectCraftingMasterCommand extends Command { @Validators.IsNotEmpty() @Validators.IsString() @autoserializeAs(String) public projectId: string = null; @Validators.IsNotEmpty() @Validators.IsEnum(CraftingMaster) @autoserializeAs(CraftingMaster) public craftingMaster: CraftingMaster = null; @Validators.IsOptionalIf((o) => o.craftingMaster === CraftingMaster.WeScrum) @Validators.IsNotEmpty() @Validators.ValidateNested() @autoserializeAs(UpdateProjectCraftingMasterCommandCraftingMasterConfig) public craftingMasterConfig: UpdateProjectCraftingMasterCommandCraftingMasterConfig = null; constructor() { super('UpdateProjectCraftingMasterCommand'); } }