fetch("SELECT * FROM menu_options WHERE id = :id", ['id' => $optionId]); if (!$option) { throw new Exception('Opción no encontrada'); } // Si se proporcionó menu_id, verificar que coincida if ($menuId !== null && $option['menu_id'] != $menuId) { throw new Exception('La opción no pertenece al menú especificado'); } // Verificar estructura de tabla menu_options $tableStructure = $db->fetchAll("DESCRIBE menu_options"); $availableColumns = array_column($tableStructure, 'Field'); // Preparar datos según estructura de tabla $updateData = []; if (in_array('option_number', $availableColumns)) { $updateData['option_number'] = (int)$input['option_key']; } if (in_array('option_key', $availableColumns)) { $updateData['option_key'] = $input['option_key']; } if (in_array('text', $availableColumns)) { $updateData['text'] = $input['option_text']; } if (in_array('option_text', $availableColumns)) { $updateData['option_text'] = $input['option_text']; } if (in_array('action_type', $availableColumns)) { $updateData['action_type'] = $input['option_action'] ?? 'message'; } if (in_array('option_action', $availableColumns)) { $updateData['option_action'] = $input['option_action'] ?? 'message'; } if (in_array('action_value', $availableColumns)) { $updateData['action_value'] = $input['option_value'] ?? ''; } if (in_array('option_value', $availableColumns)) { $updateData['option_value'] = $input['option_value'] ?? ''; } if (in_array('updated_at', $availableColumns)) { $updateData['updated_at'] = date('Y-m-d H:i:s'); } // Actualizar la opción $result = $db->update('menu_options', $updateData, 'id = :option_id', ['option_id' => $optionId]); if ($result && $result->rowCount() >= 0) { echo json_encode([ 'success' => true, 'message' => 'Opción de menú actualizada correctamente', 'option_id' => $optionId, 'menu_id' => $option['menu_id'] ]); } else { throw new Exception('No se pudo actualizar la opción'); } } catch (Exception $e) { error_log("Error in update_menu_option.php: " . $e->getMessage()); http_response_code(400); echo json_encode([ 'success' => false, 'error' => $e->getMessage() ]); } ?>