50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
import type { DistributionBoardStructureProjectCommand } from "../models/distribution-board-structure-project-command.model.js";
|
|
import type { DistributionBoardUpdateProjectCommand } from "../models/distribution-board-project-command.model.js";
|
|
import type { DistributionBoardFeederCircuitProjectCommand } from "../models/distribution-board-feeder-circuit-project-command.model.js";
|
|
import type {
|
|
AppendedProjectRevision,
|
|
ProjectRevisionSource,
|
|
} from "./project-revision.store.js";
|
|
|
|
export interface ExecuteDistributionBoardStructureCommandInput {
|
|
projectId: string;
|
|
expectedRevision: number;
|
|
source: ProjectRevisionSource;
|
|
description?: string;
|
|
actorId?: string;
|
|
historyTargetChangeSetId?: string;
|
|
command: DistributionBoardStructureProjectCommand;
|
|
}
|
|
|
|
export interface ExecutedDistributionBoardStructureCommand {
|
|
revision: AppendedProjectRevision;
|
|
inverse: DistributionBoardStructureProjectCommand;
|
|
}
|
|
|
|
export interface DistributionBoardStructureProjectCommandStore {
|
|
execute(
|
|
input: ExecuteDistributionBoardStructureCommandInput
|
|
): ExecutedDistributionBoardStructureCommand;
|
|
executeUpdate(
|
|
input: Omit<
|
|
ExecuteDistributionBoardStructureCommandInput,
|
|
"command"
|
|
> & {
|
|
command: DistributionBoardUpdateProjectCommand;
|
|
}
|
|
): {
|
|
revision: AppendedProjectRevision;
|
|
inverse: DistributionBoardUpdateProjectCommand;
|
|
};
|
|
executeFeederCircuit(
|
|
input: Omit<
|
|
ExecuteDistributionBoardStructureCommandInput,
|
|
"command"
|
|
> & {
|
|
command: DistributionBoardFeederCircuitProjectCommand;
|
|
}
|
|
): {
|
|
revision: AppendedProjectRevision;
|
|
inverse: DistributionBoardFeederCircuitProjectCommand;
|
|
};
|
|
}
|