![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/syn.corals.io/Corals/modules/Utility/Models/Rating/ |
<?php namespace Corals\Modules\Utility\Models\Rating; use Corals\Foundation\Models\BaseModel; use Corals\Foundation\Transformers\PresentableTrait; use Corals\Modules\Utility\Traits\Comment\ModelHasComments; use Corals\User\Models\User; class Rating extends BaseModel { use ModelHasComments, PresentableTrait; /** * @var string */ protected $table = 'utility_ratings'; /** * Model configuration. * @var string */ public $config = 'utility.models.rating'; /** * @var array */ protected $guarded = ['id', 'created_at', 'updated_at']; protected $casts = [ 'properties' => 'json' ]; /** * @return \Illuminate\Database\Eloquent\Relations\MorphTo */ public function reviewrateable() { return $this->morphTo(); } public function author() { return $this->belongsTo(User::class, 'author_id'); } public function scopeApproved($query) { return $query->where('utility_ratings.status', 'approved'); } public function scopeReviews($query) { return $query->where('author_id', user()->id)->where('author_type', get_class(user())); } public function canBePending() { return in_array($this->status, ['approved', 'disapproved', 'spam']); } public function canBeApproved() { return in_array($this->status, ['disapproved', 'pending', 'spam']); } public function canBeDisApproved() { return in_array($this->status, ['approved', 'pending', 'spam']); } public function canBeSpam() { return in_array($this->status, ['approved', 'pending', 'disapproved']); } public function ratable() { return $this->morphTo('reviewrateable'); } }