Paillasse/portail/app/Models/DemandeInscription.php
Adam Belkacemi dd4f9c3c55 permet aux élèves de rejoindre leur classe avec son code, et les fiches en lot
L'élève saisit le code de classe et son prénom, le prof accepte, l'élève
voit une seule fois son identifiant et son code. Aucun e-mail. Le prof
peut aussi régénérer les fiches de plusieurs élèves d'un coup. Procédure
pour prouver la copie de la clé des sauvegardes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 22:18:53 +02:00

52 lines
1.3 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Prunable;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
* Un élève demande à rejoindre une classe avec son code (façon n°1 du
* CLAUDE.md) ; le prof accepte ou refuse. Données minimales : prénom, nom
* facultatif. Supprimée dès que l'élève a vu son code, ou au bout d'une heure.
*/
class DemandeInscription extends Model
{
use Prunable;
public const EN_ATTENTE = 'en_attente';
public const ACCEPTEE = 'acceptee';
public const REFUSEE = 'refusee';
protected $table = 'demandes_inscription';
protected $fillable = ['classe_id', 'prenom', 'nom', 'jeton_empreinte', 'statut'];
protected $casts = [
'code_secret_chiffre' => 'encrypted',
];
public function classe(): BelongsTo
{
return $this->belongsTo(Classe::class);
}
public function eleve(): BelongsTo
{
return $this->belongsTo(Eleve::class);
}
public static function empreinte(string $jeton): string
{
return hash('sha256', $jeton);
}
public function prunable(): Builder
{
return static::where('created_at', '<', now()->subHour());
}
}