'datetime', 'lu_par_eleve_a' => 'datetime', ]; /** @return BelongsTo */ public function classe(): BelongsTo { return $this->belongsTo(Classe::class); } /** @return BelongsTo */ public function eleve(): BelongsTo { return $this->belongsTo(Eleve::class); } /** @return HasMany */ public function messages(): HasMany { return $this->hasMany(MessageChat::class)->orderBy('created_at'); } public function nonLusPourProf(): int { return $this->messages() ->where('expediteur', MessageChat::ELEVE) ->when($this->lu_par_prof_a, fn ($q) => $q->where('created_at', '>', $this->lu_par_prof_a)) ->count(); } public function nonLusPourEleve(): int { return $this->messages() ->where('expediteur', MessageChat::PROF) ->when($this->lu_par_eleve_a, fn ($q) => $q->where('created_at', '>', $this->lu_par_eleve_a)) ->count(); } }