feat: Liaison parents-enfants avec gestion des tuteurs
Les parents doivent pouvoir suivre la scolarité de leurs enfants (notes, emploi du temps, devoirs). Cela nécessite un lien formalisé entre le compte parent et le compte élève, géré par les administrateurs. Le lien est établi soit manuellement via l'interface d'administration, soit automatiquement lors de l'activation du compte parent lorsque l'invitation inclut un élève cible. Ce lien conditionne l'accès aux données scolaires de l'enfant (autorisations vérifiées par un voter dédié).
This commit is contained in:
@@ -31,6 +31,8 @@ final class ActivationToken extends AggregateRoot
|
||||
public private(set) string $schoolName,
|
||||
public private(set) DateTimeImmutable $createdAt,
|
||||
public private(set) DateTimeImmutable $expiresAt,
|
||||
public private(set) ?string $studentId = null,
|
||||
public private(set) ?string $relationshipType = null,
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -41,6 +43,8 @@ final class ActivationToken extends AggregateRoot
|
||||
string $role,
|
||||
string $schoolName,
|
||||
DateTimeImmutable $createdAt,
|
||||
?string $studentId = null,
|
||||
?string $relationshipType = null,
|
||||
): self {
|
||||
$token = new self(
|
||||
id: ActivationTokenId::generate(),
|
||||
@@ -52,6 +56,8 @@ final class ActivationToken extends AggregateRoot
|
||||
schoolName: $schoolName,
|
||||
createdAt: $createdAt,
|
||||
expiresAt: $createdAt->modify(sprintf('+%d days', self::EXPIRATION_DAYS)),
|
||||
studentId: $studentId,
|
||||
relationshipType: $relationshipType,
|
||||
);
|
||||
|
||||
$token->recordEvent(new ActivationTokenGenerated(
|
||||
@@ -82,6 +88,8 @@ final class ActivationToken extends AggregateRoot
|
||||
DateTimeImmutable $createdAt,
|
||||
DateTimeImmutable $expiresAt,
|
||||
?DateTimeImmutable $usedAt,
|
||||
?string $studentId = null,
|
||||
?string $relationshipType = null,
|
||||
): self {
|
||||
$token = new self(
|
||||
id: $id,
|
||||
@@ -93,6 +101,8 @@ final class ActivationToken extends AggregateRoot
|
||||
schoolName: $schoolName,
|
||||
createdAt: $createdAt,
|
||||
expiresAt: $expiresAt,
|
||||
studentId: $studentId,
|
||||
relationshipType: $relationshipType,
|
||||
);
|
||||
|
||||
$token->usedAt = $usedAt;
|
||||
|
||||
Reference in New Issue
Block a user