* @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0 */ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Conversation extends Model { /** @use HasFactory<\Database\Factories\ConversationFactory> */ use HasFactory; /** * The attributes that aren't mass assignable. * * @var string[] */ protected $guarded = []; /** * Has many private messages. * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function messages(): \Illuminate\Database\Eloquent\Relations\HasMany { return $this->hasMany(PrivateMessage::class); } /** * Has many users. * * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function users(): \Illuminate\Database\Eloquent\Relations\BelongsToMany { return $this->belongsToMany(User::class, 'participants')->withTrashed(); } /** * Has many participants. * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function participants(): \Illuminate\Database\Eloquent\Relations\HasMany { return $this->hasMany(Participant::class); } }