# Doctrine

## Timestampable

`App\Core\Doctrine\Timestampable` is a trait usuble in an entity. It adds `createdAt and updatedAt` datetime attributes with the setters and the getters :

* `setCreatedAt(?\DateTime $createdAt): self`
* `setUpdated(?\DateTime $createdAt): self`
* `getCreatedAt(): ?\DateTime`
* `getUpdatedAt(): ?\DateTime`

When the entity is created or updated, `createdAt` and `updatedAt` are automatically updated to.

### Usage

```php-inline title="src/Entity/FooEntity.php"
namespace App/Entity;

use use App\Core\Entity\EntityInterface;
use Doctrine\ORM\Mapping as ORM;

use App\Core\Doctrine\Timestampable;
use App\Core\Entity\EntityInterface;
use App\Repository\FooRepository;
use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity(repositoryClass: FooRepository::class)]
#[ORM\HasLifecycleCallbacks]
class FooEntity implements EntityInterface
{
    use Timestampable;

	// ...
}
```
