feat: Provisionner automatiquement un nouvel établissement
Some checks failed
CI / Backend Tests (push) Has been cancelled
CI / Frontend Tests (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
CI / Naming Conventions (push) Has been cancelled
CI / Build Check (push) Has been cancelled

Lorsqu'un super-admin crée un établissement via l'interface, le système
doit automatiquement créer la base tenant, exécuter les migrations,
créer le premier utilisateur admin et envoyer l'invitation — le tout
de manière asynchrone pour ne pas bloquer la réponse HTTP.

Ce mécanisme rend chaque établissement opérationnel dès sa création
sans intervention manuelle sur l'infrastructure.
This commit is contained in:
2026-04-08 13:55:41 +02:00
parent bec211ebf0
commit dc2be898d5
171 changed files with 11703 additions and 700 deletions

View File

@@ -65,6 +65,10 @@ final class GradeResource
public ?string $appreciation = null;
public ?string $createdByName = null;
public ?bool $isReplacement = null;
public ?DateTimeImmutable $createdAt = null;
public ?DateTimeImmutable $updatedAt = null;
@@ -76,8 +80,12 @@ final class GradeResource
public ?DateTimeImmutable $gradesPublishedAt = null;
public static function fromDomain(Grade $grade, ?string $studentName = null): self
{
public static function fromDomain(
Grade $grade,
?string $studentName = null,
?string $createdByName = null,
?bool $isReplacement = null,
): self {
$resource = new self();
$resource->id = (string) $grade->id;
$resource->evaluationId = (string) $grade->evaluationId;
@@ -86,6 +94,8 @@ final class GradeResource
$resource->value = $grade->value?->value;
$resource->status = $grade->status->value;
$resource->appreciation = $grade->appreciation;
$resource->createdByName = $createdByName;
$resource->isReplacement = $isReplacement;
$resource->createdAt = $grade->createdAt;
$resource->updatedAt = $grade->updatedAt;