Un quiz.gift par séquence (01 à 07, le 08 existait déjà), lu par un nouveau service LecteurGift et synchronisé par quiz:synchroniser-banque (même esprit que labs:synchroniser) vers un propriétaire technique jamais archivé (BanqueOfficielle), pour ne pas reproduire la dette du quiz partagé qui disparaît à la purge RGPD. /banque-quiz regroupe maintenant par thème comme /bibliotheque. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
37 lines
1.1 KiB
PHP
37 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Quiz;
|
|
|
|
use App\Models\Classe;
|
|
use App\Models\Etablissement;
|
|
use App\Models\User;
|
|
use Illuminate\Support\Str;
|
|
|
|
/**
|
|
* Propriétaire des quiz synchronisés depuis paillasse-contenus/ (voir
|
|
* quiz:synchroniser-banque) : une classe qui n'est jamais archivée, pour
|
|
* que ce contenu officiel ne disparaisse pas à la purge RGPD (90 jours)
|
|
* comme le ferait un quiz partagé depuis une classe de prof — voir
|
|
* docs/dette.md.
|
|
*/
|
|
class BanqueOfficielle
|
|
{
|
|
public const UAI = 'PAILLASSE-BANQUE';
|
|
|
|
public static function classe(): Classe
|
|
{
|
|
$etablissement = Etablissement::firstOrCreate(
|
|
['uai' => self::UAI],
|
|
['nom' => 'Bibliothèque Paillasse'],
|
|
);
|
|
|
|
$prof = User::firstOrCreate(
|
|
['email' => 'banque-officielle@paillasse.interne'],
|
|
['name' => 'Bibliothèque Paillasse', 'password' => Str::random(40), 'etablissement_id' => $etablissement->id],
|
|
);
|
|
|
|
return Classe::firstOrCreate(
|
|
['user_id' => $prof->id, 'etablissement_id' => $etablissement->id, 'nom' => 'Banque officielle'],
|
|
);
|
|
}
|
|
}
|