$marques * Marques BelongsToMany relationship. * @property-read \Illuminate\Database\Eloquent\Collection<\App\Models\Dossier> $dossiers * Dossiers BelongsToMany relationship. * @property-read \Illuminate\Database\Eloquent\Collection<\App\Models\Sujet> $sujets * Sujets BelongsToMany relationship. * @property-read \Illuminate\Database\Eloquent\Collection<\App\Models\Historique> $historiques * Historiques HasMany relationship. * @property-read \Illuminate\Database\Eloquent\Collection<\App\Models\Recherche> $recherches * Recherches HasMany relationship. * @property-read \Illuminate\Database\Eloquent\Collection<\App\Models\Panier> $paniersOwner * Paniers HasMany relationship that belongs to the user. * @property-read \Illuminate\Database\Eloquent\Collection<\App\Models\Panier> $paniersFavoris * Paniers HasMany relationship. */ class User extends Authenticatable { use HasFactory; use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'matricule', 'firstname', 'lastname', 'email', 'password', 'role', ]; /** * The attributes that should be hidden for serialization. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', 'role' => RoleEnum::class, ]; // * RELATIONSHIPS /** * BelongsToMany marque relation * The marques that belong to the user. * * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function marques() { return $this->belongsToMany(Marque::class, 'marque_user', 'user_id', 'marque_id'); } /** * BelongsToMany dossier relation * The dossiers that belong to the user. * * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function dossiers() { return $this->belongsToMany(Dossier::class); } /** * BelongsToMany sujet relation * The sujet that belong to the user. * * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function sujets() { return $this->belongsToMany(Sujet::class, 'sujet_user', 'user_id', 'sujet_id'); } /** * HasMany historiques relation * Get the historiques for the user. * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function historiques() { return $this->hasMany(Historique::class); } /** * HasMany recherches relation * Get the recherches for the user. * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function recherches() { return $this->hasMany(Recherche::class); } /** * HasMany paniers relation * Get the paniers for the user. * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function paniersOwner() { return $this->hasMany(Panier::class, 'user_id')->with('mediaList'); } /** * BelongsToMany paniers relation * The paniers that belong to the user. * * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function paniersFavoris() { return $this->belongsToMany(Panier::class); } }