feat: implement system-wide activity logging with database persistence, repository patterns, and admin controller access.

This commit is contained in:
pbao9
2026-05-16 20:01:52 +07:00
parent 8a115c5175
commit 551c90d60b
44 changed files with 845 additions and 33 deletions
@@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
use App\Http\Controllers\Api\Service\Concerns\ResolvesVm;
use App\Http\Services\vCenter;
use App\Models\ModuleVmware;
use App\Services\ActivityLogger;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
@@ -14,6 +15,8 @@ class VmRebuildController extends Controller
{
use ResolvesVm;
public function __construct(protected ActivityLogger $activityLogger) {}
public function options(Request $request): JsonResponse
{
$productId = (int) $request->query('product');
@@ -103,6 +106,14 @@ class VmRebuildController extends Controller
], 400);
}
$this->activityLogger->log(
event: 'rebuild',
logName: 'VM',
description: "Customer {$customer->email} rebuild VM: {$vm->name} với OS ID: {$payload['os_id']}",
subject: $vm,
newValues: ['os_id' => $payload['os_id']],
);
return response()->json([
'error' => false,
'message' => 'Đã gửi yêu cầu rebuild VM',
@@ -207,6 +218,14 @@ class VmRebuildController extends Controller
}
}
$this->activityLogger->log(
event: 'upgrade_addons',
logName: 'VM',
description: "Customer {$customer->email} nâng cấp addons VM: {$vm->name} - áp dụng: " . implode(', ', $applied ?: ['none']),
subject: $vm,
newValues: array_filter(['cpu' => $payload['cpu'] ?? null, 'ram' => $payload['ram'] ?? null, 'disk' => $payload['disk'] ?? null]),
);
return response()->json([
'error' => false,
'message' => 'Đã gửi yêu cầu nâng cấp addons',