feat: Implement ChickenObserver to clear active chickens cache on model changes and register it with the Chicken model.
This commit is contained in:
parent
11a1017a65
commit
4e9ef8b5a7
@ -3,10 +3,13 @@
|
||||
namespace App\Models;
|
||||
|
||||
use App\Enums\ChickenStatus;
|
||||
use App\Observers\ChickenObserver;
|
||||
use Illuminate\Database\Eloquent\Attributes\ObservedBy;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
#[ObservedBy([ChickenObserver::class])]
|
||||
class Chicken extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
|
||||
57
app/Observers/ChickenObserver.php
Normal file
57
app/Observers/ChickenObserver.php
Normal file
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Observers;
|
||||
|
||||
use App\Models\Chicken;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class ChickenObserver
|
||||
{
|
||||
/**
|
||||
* Handle events after any change that should invalidate chicken cache.
|
||||
*/
|
||||
protected function clearChickenCache(): void
|
||||
{
|
||||
Cache::store('redis')->forget('active_chickens_for_egg_collection_form');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the Chicken "created" event.
|
||||
*/
|
||||
public function created(Chicken $chicken): void
|
||||
{
|
||||
$this->clearChickenCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the Chicken "updated" event.
|
||||
*/
|
||||
public function updated(Chicken $chicken): void
|
||||
{
|
||||
$this->clearChickenCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the Chicken "deleted" event.
|
||||
*/
|
||||
public function deleted(Chicken $chicken): void
|
||||
{
|
||||
$this->clearChickenCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the Chicken "restored" event.
|
||||
*/
|
||||
public function restored(Chicken $chicken): void
|
||||
{
|
||||
$this->clearChickenCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the Chicken "force deleted" event.
|
||||
*/
|
||||
public function forceDeleted(Chicken $chicken): void
|
||||
{
|
||||
$this->clearChickenCache();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user