Paillasse/portail/app/Models/DemandeInscription.php

53 lines
1.3 KiB
PHP
Raw Normal View History

<?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());
}
}