version = $version; $this->migration = $migration; $this->direction = $direction; } public function getVersion(): Version { return $this->version; } public function getResult(): ?ExecutionResult { return $this->result; } public function markAsExecuted(ExecutionResult $result): void { if ($this->result !== null) { throw PlanAlreadyExecuted::new(); } $this->result = $result; } public function getMigration(): AbstractMigration { return $this->migration; } public function getDirection(): string { return $this->direction; } }