feat: Permettre aux enseignants de créer et gérer les devoirs
Les enseignants avaient besoin d'un outil pour créer des devoirs assignés à leurs classes, avec filtrage automatique par matière selon la classe sélectionnée. Le système valide que la date d'échéance tombe un jour ouvrable (lundi-vendredi) et empêche les dates dans le passé. Le domaine modélise le devoir comme un agrégat avec pièces jointes, statut brouillon/publié, et événements métier (création, modification, suppression). Les handlers de notification écoutent ces événements pour les futurs envois aux parents et élèves.
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
<?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,
|
||||
));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user