false, 'ERROR' => 'missing_body']); } $businessID = (int) ($data['BusinessID'] ?? 0); if ($businessID <= 0) { apiAbort(['OK' => false, 'ERROR' => 'missing_BusinessID']); } $sessionEnabled = (int) ($data['SessionEnabled'] ?? 0); $sessionLockMinutes = (int) ($data['SessionLockMinutes'] ?? 30); $sessionPaymentStrategy = substr(trim($data['SessionPaymentStrategy'] ?? 'A'), 0, 1); $tabMinAuth = (float) ($data['TabMinAuthAmount'] ?? 50.00); $tabDefaultAuth = (float) ($data['TabDefaultAuthAmount'] ?? 150.00); $tabMaxAuth = (float) ($data['TabMaxAuthAmount'] ?? 1000.00); $tabAutoThreshold = (float) ($data['TabAutoIncreaseThreshold'] ?? 0.80); $tabMaxMembers = (int) ($data['TabMaxMembers'] ?? 10); $tabApprovalRequired = (int) ($data['TabApprovalRequired'] ?? 1); // Validate ranges $sessionLockMinutes = max(5, min(480, $sessionLockMinutes)); if (!in_array($sessionPaymentStrategy, ['A', 'P'])) $sessionPaymentStrategy = 'A'; $tabMinAuth = max(10, min(10000, $tabMinAuth)); $tabMaxAuth = max($tabMinAuth, min(10000, $tabMaxAuth)); $tabDefaultAuth = max($tabMinAuth, min($tabMaxAuth, $tabDefaultAuth)); $tabAutoThreshold = max(0.5, min(1.0, $tabAutoThreshold)); $tabMaxMembers = max(1, min(50, $tabMaxMembers)); try { queryTimed(" UPDATE Businesses SET SessionEnabled = ?, SessionLockMinutes = ?, SessionPaymentStrategy = ?, TabMinAuthAmount = ?, TabDefaultAuthAmount = ?, TabMaxAuthAmount = ?, TabAutoIncreaseThreshold = ?, TabMaxMembers = ?, TabApprovalRequired = ? WHERE ID = ? ", [ $sessionEnabled, $sessionLockMinutes, $sessionPaymentStrategy, $tabMinAuth, $tabDefaultAuth, $tabMaxAuth, $tabAutoThreshold, $tabMaxMembers, $tabApprovalRequired, $businessID ]); jsonResponse([ 'OK' => true, 'ERROR' => '', 'BusinessID' => $businessID, 'SessionEnabled' => $sessionEnabled, 'SessionLockMinutes' => $sessionLockMinutes, 'SessionPaymentStrategy' => $sessionPaymentStrategy, 'TabMinAuthAmount' => $tabMinAuth, 'TabDefaultAuthAmount' => $tabDefaultAuth, 'TabMaxAuthAmount' => $tabMaxAuth, 'TabAutoIncreaseThreshold' => $tabAutoThreshold, 'TabMaxMembers' => $tabMaxMembers, 'TabApprovalRequired' => $tabApprovalRequired, ]); } catch (Exception $e) { jsonResponse(['OK' => false, 'ERROR' => 'server_error', 'MESSAGE' => $e->getMessage()]); }