setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->exec("SET search_path TO admin"); switch($action){ case 'send_stats': $total = $dbh->query("SELECT COUNT(*) FROM admin.unified_send_log")->fetchColumn(); $today = $dbh->query("SELECT COUNT(*) FROM admin.unified_send_log WHERE created_at >= CURRENT_DATE")->fetchColumn(); $inbox = $dbh->query("SELECT COUNT(*) FROM admin.unified_send_log WHERE result='inbox' AND created_at >= CURRENT_DATE")->fetchColumn(); $rate = $today > 0 ? round(($inbox/$today)*100,1) : 0; echo json_encode(['success'=>true,'data'=>['total_sent'=>(int)$total,'sent_today'=>(int)$today,'inbox_today'=>(int)$inbox,'inbox_rate'=>$rate]]); break; case 'o365_stats': $total = $dbh->query("SELECT COUNT(*) FROM admin.email_accounts WHERE provider='office365'")->fetchColumn(); $active = $dbh->query("SELECT COUNT(*) FROM admin.email_accounts WHERE provider='office365' AND status='active'")->fetchColumn(); echo json_encode(['success'=>true,'data'=>['total'=>(int)$total,'active'=>(int)$active]]); break; default: echo json_encode(['success'=>true,'data'=>['status'=>'ok','endpoints'=>['send_stats','o365_stats']]]); }