53 lines
1.1 KiB
PHP
53 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class FaqQuestion extends Model
|
|
{
|
|
/**
|
|
* The attributes that are mass assignable.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $fillable = [
|
|
'question', 'answer', 'positive_vote',
|
|
'negative_vote', 'theme_id'
|
|
];
|
|
|
|
// * RELATIONSHIPS
|
|
|
|
/**
|
|
* Belongs To FaqTheme relationship
|
|
*
|
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
*/
|
|
public function theme()
|
|
{
|
|
return $this->belongsTo(FaqTheme::class, 'theme_id');
|
|
}
|
|
|
|
/**
|
|
* Get utility attribute
|
|
*
|
|
* @return float
|
|
*/
|
|
public function getUtilityAttribute(): float
|
|
{
|
|
/** @var float */
|
|
$pourcent = 0;
|
|
|
|
if (
|
|
$this->positive_vote !== null &&
|
|
$this->negative_vote !== null &&
|
|
$this->positive_vote >= $this->negative_vote &&
|
|
$this->positive_vote > 0 && $this->negative_vote > 0
|
|
) {
|
|
$ratio = \floatval($this->negative_vote / $this->positive_vote);
|
|
$pourcent = \floatval(ceil((1 - $ratio) * 100));
|
|
}
|
|
|
|
return $pourcent;
|
|
}
|
|
}
|