<?php
namespace App\Models;
use App\Cache\UserDetail\UserDetailById;
use App\Enums\UserDetail\Gender;
use App\Models\Contracts\Cacheable;
use App\Observers\UserDetailObserver;
use Illuminate\Database\Eloquent\Attributes\ObservedBy;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
#[ObservedBy([UserDetailObserver::class])]
class UserDetail extends Model implements Cacheable
{
use HasFactory;
protected $fillable = ['birthdate','gender'];
protected function casts(): array
{
return [
'birthdate' => 'date',
'gender' => Gender::class,
];
}
public function clearCache(): void
{
(new UserDetailById($this->id))->invalidate();
}
}
<?php
namespace App\Models;
use App\Cache\UserDetail\UserDetailById;
use App\Enums\UserDetail\Gender;
use App\Models\Contracts\Cacheable;
use App\Observers\UserDetailObserver;
use Illuminate\Database\Eloquent\Attributes\ObservedBy;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
#[ObservedBy([UserDetailObserver::class])]
class UserDetail extends Model implements Cacheable
{
use HasFactory;
protected $fillable = ['birthdate','gender'];
protected function casts(): array
{
return [
'birthdate' => 'date',
'gender' => Gender::class,
];
}
public function clearCache(): void
{
(new UserDetailById($this->id))->invalidate();
}
}