init
This commit is contained in:
24
app/Services/ChangeLogService.php
Normal file
24
app/Services/ChangeLogService.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\ChangeLog;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ChangeLogService
|
||||
{
|
||||
public function log(string $action, Model $model, ?array $before = null): void
|
||||
{
|
||||
ChangeLog::query()->create([
|
||||
'entity_type' => $model::class,
|
||||
'entity_id' => (int) $model->getKey(),
|
||||
'action' => $action,
|
||||
'before_data' => $before,
|
||||
'after_data' => $model->getAttributes(),
|
||||
'changed_by' => null,
|
||||
'changed_at' => now(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
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