import { Command, deserialize, inheritSerialization, serializable, serialize, Validators } from '@my-devkit/core'; import { UpdateStoryDescriptionCommand } from './update-story-description-command'; import { UpdateStoryEstimationCommand } from './update-story-estimation-command'; import { UpdateStoryFeatureCommand } from './update-story-feature-command'; import { UpdateStoryIterationCommand } from './update-story-iteration-command'; import { UpdateStoryNameCommand } from './update-story-name-command'; import { UpdateStoryPositionCommand } from './update-story-position-command'; type CommandType = | UpdateStoryNameCommand | UpdateStoryDescriptionCommand | UpdateStoryIterationCommand | UpdateStoryFeatureCommand | UpdateStoryEstimationCommand | UpdateStoryPositionCommand; @serializable @inheritSerialization(Command) export class BulkUpdateStoryCommand extends Command { @Validators.IsArray() @Validators.ArrayNotEmpty() public commands: CommandType[] = []; constructor() { super('BulkUpdateStoryCommand'); } public static OnDeserialized(instance: BulkUpdateStoryCommand, json: Record): void { if (json.commands) { instance.commands = json.commands.map((c: any) => deserialize(c)); } } public static OnSerialized(instance: BulkUpdateStoryCommand, json: Record): void { if (instance.commands) { json.commands = instance.commands.map((c) => serialize(c)); } } }