46 lines
1.2 KiB
PHP
46 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Models\Concerns\GereSessionUnique;
|
|
use Illuminate\Auth\Authenticatable;
|
|
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
|
|
class Eleve extends Model implements AuthenticatableContract
|
|
{
|
|
use Authenticatable, GereSessionUnique, HasFactory;
|
|
|
|
protected $fillable = ['classe_id', 'prenom', 'nom', 'identifiant', 'code_secret', 'jeton_qr'];
|
|
|
|
protected $hidden = ['code_secret', 'jeton_session_actif', 'jeton_qr'];
|
|
|
|
protected $casts = [
|
|
'derniere_connexion_a' => 'datetime',
|
|
];
|
|
|
|
public function getAuthPasswordName(): string
|
|
{
|
|
return 'code_secret';
|
|
}
|
|
|
|
public function classe(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Classe::class);
|
|
}
|
|
|
|
public function labSessions(): HasMany
|
|
{
|
|
return $this->hasMany(LabSession::class);
|
|
}
|
|
|
|
public function nomAffiche(): string
|
|
{
|
|
return $this->nom
|
|
? $this->prenom.' '.mb_substr($this->nom, 0, 1).'.'
|
|
: $this->prenom;
|
|
}
|
|
}
|