Files
SkinbaseNova/app/Observers/ArtworkAwardObserver.php

41 lines
803 B
PHP

<?php
declare(strict_types=1);
namespace App\Observers;
use App\Models\ArtworkAward;
use App\Services\ArtworkAwardService;
class ArtworkAwardObserver
{
public function __construct(
private readonly ArtworkAwardService $service
) {}
public function created(ArtworkAward $award): void
{
$this->refresh($award);
}
public function updated(ArtworkAward $award): void
{
$this->refresh($award);
}
public function deleted(ArtworkAward $award): void
{
$this->refresh($award);
}
private function refresh(ArtworkAward $award): void
{
$this->service->recalcStats($award->artwork_id);
$artwork = $award->artwork;
if ($artwork) {
$this->service->syncToSearch($artwork);
}
}
}