Les enseignants avaient besoin de définir les critères de notation (barème, coefficient) avant de pouvoir saisir des notes. Sans cette brique, le module Notes & Évaluations (Epic 6) ne pouvait pas démarrer. L'évaluation est un agrégat du bounded context Scolarité avec deux Value Objects (GradeScale 1-100, Coefficient 0.1-10). Le barème est verrouillé dès qu'une note existe pour éviter les incohérences. Un port EvaluationGradesChecker (stub pour l'instant) sera branché sur le repository de notes dans la story 6.2.
24 lines
489 B
PHP
24 lines
489 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Scolarite\Domain\Model\Evaluation;
|
|
|
|
use App\Scolarite\Domain\Exception\CoefficientInvalideException;
|
|
|
|
final readonly class Coefficient
|
|
{
|
|
public function __construct(
|
|
public float $value,
|
|
) {
|
|
if ($value < 0.1 || $value > 10) {
|
|
throw CoefficientInvalideException::avecValeur($value);
|
|
}
|
|
}
|
|
|
|
public function equals(self $other): bool
|
|
{
|
|
return $this->value === $other->value;
|
|
}
|
|
}
|