false, 'ERROR' => 'missing_params', 'MESSAGE' => 'BusinessID is required']); } try { // Check if categories already exist $qCheck = queryOne("SELECT COUNT(*) AS cnt FROM TaskCategories WHERE BusinessID = ?", [$bizID]); if ((int) $qCheck['cnt'] > 0) { $q = queryTimed(" SELECT ID, Name, Color FROM TaskCategories WHERE BusinessID = ? AND IsActive = 1 ORDER BY Name ", [$bizID]); $categories = []; foreach ($q as $row) { $categories[] = [ 'TaskCategoryID' => (int) $row['ID'], 'Name' => $row['Name'], 'Color' => $row['Color'], ]; } jsonResponse(['OK' => true, 'MESSAGE' => 'Categories already exist', 'CATEGORIES' => $categories]); } // Default categories $defaults = [ ['Service Point', '#F44336'], ['Kitchen', '#FF9800'], ['Bar', '#9C27B0'], ['Cleaning', '#4CAF50'], ['Management', '#2196F3'], ['Delivery', '#00BCD4'], ['General', '#607D8B'], ]; foreach ($defaults as [$name, $color]) { queryTimed(" INSERT INTO TaskCategories (BusinessID, Name, Color) VALUES (?, ?, ?) ", [$bizID, $name, $color]); } // Return created categories $q = queryTimed(" SELECT ID, Name, Color FROM TaskCategories WHERE BusinessID = ? AND IsActive = 1 ORDER BY Name ", [$bizID]); $categories = []; foreach ($q as $row) { $categories[] = [ 'TaskCategoryID' => (int) $row['ID'], 'Name' => $row['Name'], 'Color' => $row['Color'], ]; } jsonResponse([ 'OK' => true, 'MESSAGE' => 'Created ' . count($defaults) . ' default categories', 'CATEGORIES' => $categories, ]); } catch (Exception $e) { jsonResponse(['OK' => false, 'ERROR' => 'server_error', 'MESSAGE' => $e->getMessage()]); }