= DATE_FORMAT(NOW(),'%Y-%m-01')")['c']; // Revenue summary $totalRevenue = DB::row("SELECT IFNULL(SUM(amount),0) c FROM transactions WHERE status='completed' AND type='credit'")['c']; $monthRevenue = DB::row("SELECT IFNULL(SUM(amount),0) c FROM transactions WHERE status='completed' AND type='credit' AND created_at >= DATE_FORMAT(NOW(),'%Y-%m-01')")['c']; // Plan distribution $planDist = DB::all("SELECT p.name, COUNT(u.id) cnt FROM plans p LEFT JOIN users u ON u.plan_id=p.id AND u.role='client' GROUP BY p.id, p.name ORDER BY p.id"); // Recent signups $recentUsers = DB::all("SELECT id, name, email, plan_id, created_at, is_active FROM users WHERE role='client' ORDER BY created_at DESC LIMIT 8"); // Response trend (last 14 days) $trend = DB::all("SELECT DATE(created_at) dt, COUNT(*) cnt FROM survey_responses WHERE created_at >= DATE_SUB(NOW(), INTERVAL 14 DAY) GROUP BY DATE(created_at) ORDER BY dt"); // Recent surveys (active) $recentSurveys = DB::all("SELECT s.id, s.title, s.status, s.response_count, s.created_at, u.name owner FROM surveys s JOIN users u ON s.user_id=u.id ORDER BY s.created_at DESC LIMIT 8"); require_once __DIR__ . '/../includes/admin_header.php'; ?>
| Survey | Owner | Status | Responses | Created |
|---|---|---|---|---|
| = sanitize($s['title']) ?> | = sanitize($s['owner']) ?> | = surveyStatusBadge($s['status']) ?> | = number_format($s['response_count']) ?> | = timeSince($s['created_at']) ?> |
| Name | Status | Joined | |
|---|---|---|---|
| = sanitize($u['name']) ?> | = sanitize($u['email']) ?> | = $u['is_active'] ? 'Active' : 'Inactive' ?> | = timeSince($u['created_at']) ?> |