¨4.0.1¨
This commit is contained in:
@@ -4,6 +4,7 @@ namespace Modules\Review\Entities;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\User\Entities\User;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Modules\Support\Eloquent\Model;
|
||||
use Modules\Product\Entities\Product;
|
||||
@@ -32,7 +33,16 @@ class Review extends Model
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $appends = ['rating_percent', 'created_at_formatted'];
|
||||
protected $appends = ['rating_percent', 'status', 'created_at_formatted'];
|
||||
|
||||
|
||||
public static function countAndAvgRating(Product $product)
|
||||
{
|
||||
return self::select(DB::raw('count(*) as count, avg(rating) as avg_rating'))
|
||||
->where('product_id', $product->id)
|
||||
->first();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Perform any actions required after the model boots.
|
||||
@@ -46,28 +56,25 @@ class Review extends Model
|
||||
});
|
||||
}
|
||||
|
||||
public static function countAndAvgRating(Product $product)
|
||||
{
|
||||
return self::select(DB::raw('count(*) as count, avg(rating) as avg_rating'))
|
||||
->where('product_id', $product->id)
|
||||
->first();
|
||||
}
|
||||
|
||||
public function getAvgRatingAttribute($avgRating)
|
||||
{
|
||||
return $avgRating ?: 0;
|
||||
}
|
||||
|
||||
|
||||
public function getRatingPercentAttribute()
|
||||
{
|
||||
return ($this->rating / 5) * 100;
|
||||
}
|
||||
|
||||
public function getCreatedAtFormattedAttribute()
|
||||
|
||||
public function getStatusAttribute()
|
||||
{
|
||||
return $this->created_at->toFormattedDateString();
|
||||
return $this->status();
|
||||
}
|
||||
|
||||
|
||||
public function status()
|
||||
{
|
||||
if ($this->is_approved) {
|
||||
@@ -77,21 +84,31 @@ class Review extends Model
|
||||
return trans('review::statuses.unapproved');
|
||||
}
|
||||
|
||||
|
||||
public function getCreatedAtFormattedAttribute()
|
||||
{
|
||||
return $this->created_at->toFormattedDateString();
|
||||
}
|
||||
|
||||
|
||||
public function product()
|
||||
{
|
||||
return $this->belongsTo(Product::class)->withTrashed();
|
||||
}
|
||||
|
||||
|
||||
public function reviewer()
|
||||
{
|
||||
return $this->belongsTo(User::class, 'reviewer_id');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get table data for the resource
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
* @param Request $request
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function table(Request $request)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user