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; }; }