53 lines
1.3 KiB
PHP
53 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Observers;
|
|
|
|
use App\Models\Contract;
|
|
use App\Models\AuditLog;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class ContractObserver
|
|
{
|
|
/**
|
|
* Handle the Contract "created" event.
|
|
*/
|
|
public function created(Contract $contract): void
|
|
{
|
|
AuditLog::create([
|
|
'user_id' => Auth::id(),
|
|
'action' => 'contract_created',
|
|
'description' => "Contract {$contract->name} created.",
|
|
'ip_address' => request()->ip(),
|
|
'user_agent' => request()->userAgent(),
|
|
'changes' => $contract->getAttributes(),
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Handle the Contract "updated" event.
|
|
*/
|
|
public function updated(Contract $contract): void
|
|
{
|
|
AuditLog::create([
|
|
'user_id' => Auth::id(),
|
|
'action' => 'contract_updated',
|
|
'description' => "Contract {$contract->name} updated.",
|
|
'ip_address' => request()->ip(),
|
|
'changes' => $contract->getChanges(),
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Handle the Contract "deleted" event.
|
|
*/
|
|
public function deleted(Contract $contract): void
|
|
{
|
|
AuditLog::create([
|
|
'user_id' => Auth::id(),
|
|
'action' => 'contract_deleted',
|
|
'description' => "Contract {$contract->name} deleted.",
|
|
'ip_address' => request()->ip(),
|
|
]);
|
|
}
|
|
}
|