<?php

declare(strict_types=1);

namespace App\Scolarite\Domain\Exception;

use DateTimeImmutable;
use DomainException;

use function sprintf;

final class DateEcheanceInvalideException extends DomainException
{
    public static function dansLePasse(DateTimeImmutable $dueDate): self
    {
        return new self(sprintf(
            'La date d\'échéance "%s" doit être dans le futur.',
            $dueDate->format('Y-m-d'),
        ));
    }

    public static function jourBloque(DateTimeImmutable $dueDate, string $raison): self
    {
        return new self(sprintf(
            'La date d\'échéance "%s" est bloquée : %s.',
            $dueDate->format('Y-m-d'),
            $raison,
        ));
    }
}
