<?php

declare(strict_types=1);

namespace App\Shared\Domain\Contract;

use DateTimeImmutable;

/**
 * Contrat lu par le TimestampableBlamableSubscriber.
 *
 * Toute entite qui l'implemente voit ses colonnes `created_at` / `updated_at`
 * remplies automatiquement au prePersist / preUpdate. Le porteur des colonnes
 * et des accesseurs est le TimestampableBlamableTrait.
 */
interface TimestampableInterface
{
    public function getCreatedAt(): ?DateTimeImmutable;

    public function setCreatedAt(DateTimeImmutable $createdAt): void;

    public function getUpdatedAt(): ?DateTimeImmutable;

    public function setUpdatedAt(DateTimeImmutable $updatedAt): void;
}
