Files
opensem/app/Models/Core/Comment.php
Ludovic CANDELLIER 39c80ce6d1 add shipping rules
2023-07-16 14:45:42 +02:00

65 lines
1.2 KiB
PHP

<?php
namespace App\Models\Core;
use App\Traits\Model\HasComments;
use Exception;
use Illuminate\Database\Eloquent\Model;
class Comment extends Model
{
use HasComments;
protected $guarded = [];
protected $casts = [
'is_approved' => 'boolean',
];
public function scopeApproved($query)
{
return $query->where('is_approved', true);
}
public function commentable()
{
return $this->morphTo();
}
public function commentator()
{
return $this->belongsTo($this->getAuthModelName(), 'user_id');
}
public function approve()
{
$this->update([
'is_approved' => true,
]);
return $this;
}
public function disapprove()
{
$this->update([
'is_approved' => false,
]);
return $this;
}
protected function getAuthModelName()
{
if (config('comments.user_model')) {
return config('comments.user_model');
}
if (! is_null(config('auth.providers.users.model'))) {
return config('auth.providers.users.model');
}
throw new Exception('Could not determine the commentator model name.');
}
}