for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/******************************************************************************
* Copyright (c) 2016 Constantin Galbenu <[email protected]> *
******************************************************************************/
namespace Gica\Cqrs\Event;
class MetaData
{
/**
* @var \DateTimeImmutable
*/
private $dateCreated;
private $aggregateId;
private $authenticatedUserId;
/* @var string */
private $aggregateClass;
public function __construct(
$aggregateId,
string $aggregateClass,
\DateTimeImmutable $dateCreated,
$authenticatedUserId = null
)
$this->dateCreated = $this->addTimeZone($dateCreated);
$this->aggregateId = $aggregateId;
$this->authenticatedUserId = $authenticatedUserId;
$this->aggregateClass = $aggregateClass;
}
public function getDateCreated(): \DateTimeImmutable
return $this->dateCreated;
public function getAggregateId()
return $this->aggregateId;
public function getAggregateClass()
return $this->aggregateClass;
public function getAuthenticatedUserId()
return $this->authenticatedUserId;
private function addTimeZone(\DateTimeImmutable $dateCreated): \DateTimeImmutable
return $dateCreated->getTimezone() ? $dateCreated :
($dateCreated->setTimezone(new \DateTimeZone('Europe/Bucharest')) ?: $dateCreated);