Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
evsmash/widgets / libs / Rating.php
Size: Mime:
<?php

namespace Evsmash\Widgets;

use Evsmash\Core\Database\Eloquent;

use Evsmash\Core\Database\SoftDeleting;
use Evsmash\Core\Simpy\Params;

use Evsmash\Widgets\Schemas\Ratings as Schema;

class Rating extends Eloquent {

	use SoftDeleting;

	// validate
	static public function validate() {

		return Schema::validate();

	}

	// belongs to user
	public function user() {

		return $this->belongsTo('Evsmash\Core\Users\User');

	}

	// params
	public function scopeParams($query, $params = false) {

		$scope = new Params();
		$scope->scope($query, $params);
		$scope->order(['created_at' => 'desc']);		
		return $scope->query;

	}

	// summary
	static public function summary($rel) {

		// get
		$ratings = Rating::where('rel', $rel)->pluck('rate');

		// init
		$output = new \stdClass;

		// avarage
		if($ratings->count()) {
			$output->avarage = round($ratings->avg(), 1);
			$output->total = $ratings->count();
		} else {
			$output->avarage = '-';
			$output->total = 0; 
		}

		// output
		return $output;

	}

}