1
0
Files
services_core/app/Traits/Auditable.php
T
2026-06-25 17:11:48 +07:00

45 lines
1.2 KiB
PHP

<?php
namespace App\Traits;
use App\Services\Audit\AuditLogService;
trait Auditable
{
protected static function bootAuditable()
{
static::created(function ($model) {
AuditLogService::log(
module: strtolower(class_basename($model)),
action: 'create',
tableName: $model->getTable(),
recordId: $model->id,
newValues: $model->toArray()
);
});
static::updated(function ($model) {
AuditLogService::log(
module: strtolower(class_basename($model)),
action: 'update',
tableName: $model->getTable(),
recordId: $model->id,
oldValues: $model->getOriginal(),
newValues: $model->getAttributes()
);
});
static::deleted(function ($model) {
AuditLogService::log(
module: strtolower(class_basename($model)),
action: 'delete',
tableName: $model->getTable(),
recordId: $model->id,
oldValues: $model->toArray()
);
});
}
}