<?php

declare(strict_types=1);

namespace App\Scolarite\Domain\Exception;

use DomainException;

use function sprintf;

final class PieceJointeInvalideException extends DomainException
{
    public static function fichierTropGros(int $fileSize, int $maxSize): self
    {
        return new self(sprintf(
            'Le fichier fait %d octets, la taille maximum est de %d octets (10 Mo).',
            $fileSize,
            $maxSize,
        ));
    }

    public static function typeFichierNonAutorise(string $mimeType): self
    {
        return new self(sprintf(
            'Le type de fichier "%s" n\'est pas autorisé. Types acceptés : PDF, JPEG, PNG.',
            $mimeType,
        ));
    }

    public static function lectureFichierImpossible(string $filename): self
    {
        return new self(sprintf(
            'Impossible de lire le fichier "%s".',
            $filename,
        ));
    }
}
