attributes->get('tenant') ?? $request->user()?->tenant; if (! $tenant) { return response()->json([ 'error' => [ 'code' => 'tenant_context_missing', 'title' => 'Tenant context missing', 'message' => 'Unable to resolve tenant for notification logs.', ], ], 403); } $query = TenantNotificationLog::query() ->where('tenant_id', $tenant->id) ->latest(); if ($type = $request->query('type')) { $query->where('type', $type); } if ($status = $request->query('status')) { $query->where('status', $status); } $perPage = (int) $request->query('per_page', 20); $perPage = max(1, min($perPage, 100)); $logs = $query->paginate($perPage); return response()->json([ 'data' => $logs->items(), 'meta' => [ 'current_page' => $logs->currentPage(), 'last_page' => $logs->lastPage(), 'per_page' => $logs->perPage(), 'total' => $logs->total(), ], ]); } }