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;
|
namespace App\Models;
|
||||||
|
|
||||||
use App\Enums\ChickenStatus;
|
use App\Enums\ChickenStatus;
|
||||||
|
use App\Observers\ChickenObserver;
|
||||||
|
use Illuminate\Database\Eloquent\Attributes\ObservedBy;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
#[ObservedBy([ChickenObserver::class])]
|
||||||
class Chicken extends Model
|
class Chicken extends Model
|
||||||
{
|
{
|
||||||
use HasFactory, SoftDeletes;
|
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