28 lines
888 B
PHP
28 lines
888 B
PHP
<?php
|
|
|
|
namespace App\Services;
|
|
|
|
use App\Models\AuditLog;
|
|
use App\Models\Requisition;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
|
|
/** Only metadata already displayed in the authorised requisition detail. */
|
|
class RequisitionAuditTrail
|
|
{
|
|
/** @return Builder<AuditLog> */
|
|
public function query(Requisition $request): Builder
|
|
{
|
|
return AuditLog::query()->where('tenant_id', $request->tenant_id)->where('requisition_id', $request->id)
|
|
->select(['id', 'action', 'user_id', 'created_at', 'after']);
|
|
}
|
|
|
|
/** @return array<string,mixed> */
|
|
public function row(AuditLog $record): array
|
|
{
|
|
$mode = $record->after['execution']['mode'] ?? null;
|
|
|
|
return ['id' => $record->id, 'action' => $record->action, 'user_id' => $record->user_id, 'created_at' => $record->created_at,
|
|
'execution' => is_string($mode) ? $mode : null];
|
|
}
|
|
}
|