payfrit-api/api/menu/debug.php
John Mizerek 1f81d98c52 Initial PHP API migration from CFML
Complete port of all 163 API endpoints from Lucee/CFML to PHP 8.3.
Shared helpers in api/helpers.php (DB, auth, request/response, security).
PDO prepared statements throughout. Same JSON response shapes as CFML.
2026-03-14 14:26:59 -07:00

73 lines
1.9 KiB
PHP

<?php
require_once __DIR__ . '/../helpers.php';
runAuth();
/**
* Debug endpoint — shows item/category stats across businesses
*/
try {
$response = [];
// Get all businesses with items
$bizRows = queryTimed("
SELECT BusinessID, COUNT(*) as ItemCount
FROM Items
WHERE BusinessID > 0
GROUP BY BusinessID
");
$response['businesses_with_items'] = [];
foreach ($bizRows as $b) {
$response['businesses_with_items'][] = [
'businessID' => (int) $b['BusinessID'],
'itemCount' => (int) $b['ItemCount'],
];
}
// Get categories grouped by business
$catRows = queryTimed("
SELECT BusinessID, COUNT(*) as cnt
FROM Categories
GROUP BY BusinessID
");
$response['categories_by_business'] = [];
foreach ($catRows as $c) {
$response['categories_by_business'][] = [
'businessID' => (int) $c['BusinessID'],
'count' => (int) $c['cnt'],
];
}
// Get sample items
$sampleRows = queryTimed("
SELECT ID, BusinessID, CategoryID, ParentItemID, Name, IsActive
FROM Items
WHERE IsActive = 1
LIMIT 20
");
$response['sample_items'] = [];
foreach ($sampleRows as $i) {
$response['sample_items'][] = [
'id' => (int) $i['ID'],
'businessID' => (int) $i['BusinessID'],
'categoryID' => (int) $i['CategoryID'],
'parentID' => (int) $i['ParentItemID'],
'name' => $i['Name'],
'active' => (int) $i['IsActive'],
];
}
// Get template link count
$linkCount = queryOne("SELECT COUNT(*) as cnt FROM lt_ItemID_TemplateItemID");
$response['template_link_count'] = (int) $linkCount['cnt'];
$response['OK'] = true;
jsonResponse($response);
} catch (Exception $e) {
jsonResponse(['OK' => false, 'ERROR' => $e->getMessage(), 'DETAIL' => '']);
}