init
This commit is contained in:
35
app/Services/ModelScoringService.php
Normal file
35
app/Services/ModelScoringService.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\AiModel;
|
||||
|
||||
class ModelScoringService
|
||||
{
|
||||
public function calculateTotal(int $effectiveness, int $price, int $speed): int
|
||||
{
|
||||
$boundedEffectiveness = $this->boundScore($effectiveness);
|
||||
$boundedPrice = $this->boundScore($price);
|
||||
$boundedSpeed = $this->boundScore($speed);
|
||||
|
||||
return (int) round(($boundedEffectiveness * 0.5) + ($boundedPrice * 0.3) + ($boundedSpeed * 0.2));
|
||||
}
|
||||
|
||||
public function apply(AiModel $model): AiModel
|
||||
{
|
||||
$model->total_score = $this->calculateTotal(
|
||||
$model->effectiveness_score,
|
||||
$model->price_score,
|
||||
$model->speed_score,
|
||||
);
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
private function boundScore(int $score): int
|
||||
{
|
||||
return max(0, min(100, $score));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user