/** * @param array $record * * @return Event */ private function translateRecordIntoEventMessage(array $record) { $identifier = $this->messageIdentifierFactory->create($record['event_id']); $payload = $this->eventSerializer->deserializePayload($record['event_payload'], $this->contractFactory->createFromClassName($record['event_payload_type'])); $metadata = $this->eventSerializer->deserializeMetadata($record['event_metadata'], $this->contractFactory->createFromClassName($record['event_metadata_type'])); $sequenceNumber = (int) $record['aggregate_version']; // $commitIdentifier = new CommitIdentifier($record['commit_id']); // $committedAt = new \DateTime($record['committed_at']); $eventMessage = $this->eventFactory->create($this->aggregateRootIdentifier, $sequenceNumber, $identifier, $payload, $metadata, $this->contractFactory); // $eventMessage->setCommitIdentifier($commitIdentifier); // $eventMessage->setCommittedAt($committedAt); return $eventMessage; }
/** * @param Serializable $payload */ public function addEventFromPayload(Serializable $payload) { $event = $this->eventFactory->create($this->aggregateRootIdentifier, $this->nextSequenceNumber(), $this->messageIdentifierFactory->generate(), $payload); $this->addEvent($event); }