<?php
declare(strict_types = 1);
namespace App\Domain\Entity;
use Doctrine\ORM\Mapping as ORM;
use App\Domain\Traits\IdTrait;
use App\Domain\Traits\TimestampableTrait;
use Ramsey\Uuid\Uuid;
/**
* @ORM\MappedSuperclass
* @ORM\HasLifecycleCallbacks
*/
class AbstractEntity
{
use IdTrait;
use TimestampableTrait;
public function __construct()
{
$this->id = Uuid::uuid4()->toString();
}
/**
* @ORM\PrePersist
*/
public function onPersist(): void
{
$this->createdAt = new \DateTime();
}
/**
* @ORM\PreUpdate
*/
public function onUpdate(): void
{
$this->updatedAt = new \DateTime();
}
}