38 lines
1.0 KiB
PHP
38 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Models\Concerns;
|
|
|
|
use App\Support\ActivityLog\ModelLabel;
|
|
use Spatie\Activitylog\Models\Concerns\LogsActivity;
|
|
use Spatie\Activitylog\Support\LogOptions;
|
|
|
|
trait InteractsWithActivityLog
|
|
{
|
|
use LogsActivity;
|
|
|
|
public function getActivitylogOptions(): LogOptions
|
|
{
|
|
return LogOptions::defaults()
|
|
->logUnguarded()
|
|
->logOnlyDirty()
|
|
->dontLogEmptyChanges()
|
|
->logExcept([
|
|
'password',
|
|
'remember_token',
|
|
'created_at',
|
|
'updated_at',
|
|
'deleted_at',
|
|
])
|
|
->setDescriptionForEvent(function (string $eventName): string {
|
|
$label = ModelLabel::for(static::class);
|
|
|
|
return match ($eventName) {
|
|
'created' => "{$label} dibuat",
|
|
'updated' => "{$label} diperbarui",
|
|
'deleted' => "{$label} dihapus",
|
|
default => "{$label} {$eventName}",
|
|
};
|
|
});
|
|
}
|
|
}
|