Files
BRISTO/app/Observers/ContractObserver.php
jeremy bayse 89a369964d Premier commit
2026-02-09 11:27:21 +01:00

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(),
]);
}
}