Files
2026-07-14 00:01:48 +03:00

47 lines
959 B
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Comment extends Model
{
protected $fillable = [
'user_id', 'commentable_type', 'commentable_id',
'parent_id', 'content', 'gif_url', 'status', 'is_pinned', 'like_count',
];
protected $casts = ['is_pinned' => 'boolean'];
public function likes()
{
return $this->hasMany(CommentLike::class);
}
public function isLikedBy(?int $userId): bool
{
if (!$userId) return false;
return $this->likes()->where('user_id', $userId)->exists();
}
public function commentable()
{
return $this->morphTo();
}
public function user()
{
return $this->belongsTo(User::class);
}
public function parent()
{
return $this->belongsTo(Comment::class, 'parent_id');
}
public function replies()
{
return $this->hasMany(Comment::class, 'parent_id');
}
}