false, 'ERROR' => 'BusinessID is required']); } $todayStart = gmdate('Y-m-d') . ' 00:00:00'; $todayEnd = gmdate('Y-m-d') . ' 23:59:59'; // Orders today $qOrdersToday = queryOne( "SELECT COUNT(*) AS cnt FROM Orders WHERE BusinessID = ? AND SubmittedOn >= ? AND SubmittedOn <= ?", [$businessID, $todayStart, $todayEnd] ); // Revenue today $qRevenueToday = queryOne( "SELECT COALESCE(SUM(li.Quantity * li.Price), 0) AS total FROM Orders o JOIN OrderLineItems li ON li.OrderID = o.ID WHERE o.BusinessID = ? AND o.SubmittedOn >= ? AND o.SubmittedOn <= ? AND o.StatusID >= 1", [$businessID, $todayStart, $todayEnd] ); // Pending orders (status 1 = submitted, 2 = preparing) $qPendingOrders = queryOne( "SELECT COUNT(*) AS cnt FROM Orders WHERE BusinessID = ? AND StatusID IN (1, 2)", [$businessID] ); // Active menu items $qMenuItems = queryOne( "SELECT COUNT(*) AS cnt FROM Items WHERE BusinessID = ? AND IsActive = 1 AND ParentItemID > 0", [$businessID] ); jsonResponse([ 'OK' => true, 'STATS' => [ 'ordersToday' => (int) $qOrdersToday['cnt'], 'revenueToday' => (float) $qRevenueToday['total'], 'pendingOrders' => (int) $qPendingOrders['cnt'], 'menuItems' => (int) $qMenuItems['cnt'], ], ]);