setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } return $pdo; } if (isset($_GET['action'])) { header('Content-Type: application/json'); $pdo = getDb(); switch ($_GET['action']) { case 'overview': $data = []; try { $data['campaigns'] = (int)$pdo->query("SELECT COUNT(*) FROM admin.campaigns")->fetchColumn(); } catch (Exception $e) { $data['campaigns'] = 0; } try { $data['o365_total'] = (int)$pdo->query("SELECT COUNT(*) FROM admin.office_accounts")->fetchColumn(); } catch (Exception $e) { $data['o365_total'] = 0; } try { $data['o365_active'] = (int)$pdo->query("SELECT COUNT(*) FROM admin.office_accounts WHERE status = 'Active'")->fetchColumn(); } catch (Exception $e) { $data['o365_active'] = 0; } try { $data['gsuite_users'] = (int)$pdo->query("SELECT COUNT(*) FROM admin.gsuite_users")->fetchColumn(); } catch (Exception $e) { $data['gsuite_users'] = 0; } try { $data['leads'] = (int)$pdo->query("SELECT COUNT(*) FROM admin.import_leads")->fetchColumn(); } catch (Exception $e) { $data['leads'] = 0; } try { $data['firebase_tokens'] = (int)$pdo->query("SELECT COUNT(*) FROM admin.firebase_tokens")->fetchColumn(); } catch (Exception $e) { $data['firebase_tokens'] = 0; } echo json_encode($data); break; case 'daily_stats': $days = intval($_GET['days'] ?? 7); $stats = []; for ($i = $days - 1; $i >= 0; $i--) { $date = date('Y-m-d', strtotime("-$i days")); $row = ['date' => $date, 'leads' => 0, 'emails' => 0]; try { $row['leads'] = (int)$pdo->query("SELECT COUNT(*) FROM admin.import_leads WHERE DATE(created_at) = '$date'")->fetchColumn(); } catch (Exception $e) {} $stats[] = $row; } echo json_encode($stats); break; case 'o365_breakdown': $breakdown = []; try { $result = $pdo->query("SELECT status, COUNT(*) as count FROM admin.office_accounts GROUP BY status ORDER BY count DESC"); $breakdown = $result->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) {} echo json_encode($breakdown); break; default: echo json_encode(['error' => 'Unknown action']); } exit; } ?>