init
Some checks failed
Tests / PHP 8.2 (push) Has been cancelled
Tests / PHP 8.3 (push) Has been cancelled
Tests / PHP 8.4 (push) Has been cancelled

This commit is contained in:
jiangdong.cheng
2026-02-11 17:28:36 +08:00
parent dcb82557c7
commit aa16c9f8c2
162 changed files with 22333 additions and 0 deletions

View 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(),
]);
}
}

View 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));
}
}