fetch("SELECT id, name, phone_number FROM users WHERE id = :user_id", ['user_id' => $user_id]); if (!$user_data) { throw new Exception('Usuario no encontrado'); } // Iniciar transacción $conn = $db->getConnection(); $conn->beginTransaction(); try { // Eliminar mensajes relacionados usando PDO $stmt = $conn->prepare("DELETE FROM conversations WHERE user_id = ?"); $stmt->bindValue(1, $user_id, PDO::PARAM_INT); $stmt->execute(); $deleted_conversations = $stmt->rowCount(); // Eliminar el usuario $stmt = $conn->prepare("DELETE FROM users WHERE id = ?"); $stmt->bindValue(1, $user_id, PDO::PARAM_INT); $stmt->execute(); if ($stmt->rowCount() === 0) { throw new Exception('No se pudo eliminar el usuario'); } // Confirmar transacción $conn->commit(); // Respuesta exitosa echo json_encode([ 'success' => true, 'message' => 'Usuario eliminado correctamente', 'data' => [ 'deleted_user_id' => $user_id, 'deleted_user_name' => $user_data['name'], 'deleted_user_phone' => $user_data['phone_number'], 'deleted_conversations_count' => $deleted_conversations, 'timestamp' => date('Y-m-d H:i:s') ] ]); } catch (Exception $e) { // Revertir transacción $conn->rollback(); throw $e; } } catch (Exception $e) { http_response_code(400); echo json_encode([ 'success' => false, 'error' => $e->getMessage(), 'debug_info' => [ 'file' => basename(__FILE__), 'line' => $e->getLine(), 'trace' => $e->getTraceAsString() ] ]); } catch (Error $e) { http_response_code(500); echo json_encode([ 'success' => false, 'error' => 'Error interno del servidor: ' . $e->getMessage(), 'debug_info' => [ 'file' => basename(__FILE__), 'line' => $e->getLine() ] ]); } ?>