/**
* Insert an event
*
* @param StreamName $streamName
* @param Message $e
* @return void
*/
private function insertEvent(StreamName $streamName, Message $e)
{
$eventArr = $this->messageConverter->convertToArray($e);
MessageDataAssertion::assert($eventArr);
$eventData = ['event_id' => $eventArr['uuid'], 'version' => $eventArr['version'], 'event_name' => $eventArr['message_name'], 'payload' => $this->payloadSerializer->serializePayload($eventArr['payload']), 'created_at' => $eventArr['created_at']->format('Y-m-d\\TH:i:s.u')];
foreach ($eventArr['metadata'] as $key => $value) {
$eventData[$key] = (string) $value;
}
$this->connection->insert($this->getTable($streamName), $eventData);
}