38 lines
793 B
PHP
38 lines
793 B
PHP
<?php
|
|
|
|
namespace Modules\Communication\Entities;
|
|
|
|
use App\User;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class ChatRoom extends Model
|
|
{
|
|
protected $guarded = ['id'];
|
|
|
|
protected $casts = [
|
|
'last_message_at' => 'datetime',
|
|
];
|
|
|
|
public function creator()
|
|
{
|
|
return $this->belongsTo(User::class, 'created_by');
|
|
}
|
|
|
|
public function members()
|
|
{
|
|
return $this->belongsToMany(User::class, 'chat_room_members', 'chat_room_id', 'user_id')
|
|
->withPivot('last_read_at')
|
|
->withTimestamps();
|
|
}
|
|
|
|
public function messages()
|
|
{
|
|
return $this->hasMany(ChatMessage::class)->orderBy('created_at');
|
|
}
|
|
|
|
public function latestMessage()
|
|
{
|
|
return $this->hasOne(ChatMessage::class)->latestOfMany();
|
|
}
|
|
}
|