41 lines
803 B
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);
|
|
}
|
|
}
|
|
}
|