user->role !== 'super_admin') { Response::error('غير مصرح لك بالوصول لهذه البيانات', 'FORBIDDEN', 403); return; } $db = Database::getInstance(); $stmt = $db->prepare("SELECT t.*, (SELECT COUNT(*) FROM invoices WHERE tenant_id = t.id) as invoice_count FROM tenants t"); $stmt->execute(); $tenants = $stmt->fetchAll(); Response::json(['success' => true, 'data' => $tenants]); } public function getSystemStats(Request $request): void { if ($request->user->role !== 'super_admin') { Response::error('Forbidden', 'FORBIDDEN', 403); return; } $db = Database::getInstance(); $stats = [ 'total_tenants' => (int)$db->query("SELECT COUNT(*) FROM tenants")->fetchColumn(), 'total_invoices' => (int)$db->query("SELECT COUNT(*) FROM invoices")->fetchColumn(), 'total_users' => (int)$db->query("SELECT COUNT(*) FROM users")->fetchColumn(), 'active_subscriptions' => (int)$db->query("SELECT COUNT(*) FROM subscriptions WHERE status = 'active'")->fetchColumn() ]; Response::json(['success' => true, 'data' => $stats]); } public function getQueueStatus(Request $request): void { if ($request->user->role !== 'super_admin') { Response::error('Forbidden', 'FORBIDDEN', 403); return; } $db = Database::getInstance(); $stmt = $db->prepare("SELECT status, COUNT(*) as count FROM queue_jobs GROUP BY status"); $stmt->execute(); $counts = $stmt->fetchAll(); Response::json(['success' => true, 'data' => $counts]); } public function health(Request $request): void { $dbStatus = 'ok'; try { Database::getInstance()->query("SELECT 1"); } catch (\Throwable $e) { $dbStatus = 'error'; } $redisStatus = 'ok'; try { \App\Core\Redis::getInstance()->ping(); } catch (\Throwable $e) { $redisStatus = 'error'; } Response::json([ 'success' => true, 'data' => [ 'database' => $dbStatus, 'redis' => $redisStatus, 'php_version' => PHP_VERSION, 'server_time' => date('Y-m-d H:i:s') ] ]); } }