rol !== 'Admin') { http_response_code(403); echo json_encode(['success' => false, 'error' => 'Acceso denegado. Se requieren permisos de Administrador.']); exit; } if ($_SERVER['REQUEST_METHOD'] !== 'POST') { http_response_code(405); echo json_encode(['success' => false, 'error' => 'Método no permitido']); exit; } $data = json_decode(file_get_contents('php://input'), true); if (empty($data['id'])) { http_response_code(400); echo json_encode(['success' => false, 'error' => 'ID de usuario requerido']); exit; } $userId = (int)$data['id']; // Evitar eliminarse a sí mismo if ($userId == $userData->userId) { http_response_code(400); echo json_encode(['success' => false, 'error' => 'No puedes eliminar tu propia cuenta']); exit; } try { $db = getDB(); $db->beginTransaction(); // Eliminar permisos primero (FK constraint) $db->prepare("DELETE FROM usuarios_permisos WHERE usuario_id = ?")->execute([$userId]); // Eliminar usuario $stmt = $db->prepare("DELETE FROM usuarios WHERE id = ?"); $stmt->execute([$userId]); if ($stmt->rowCount() === 0) { $db->rollBack(); http_response_code(404); echo json_encode(['success' => false, 'error' => 'Usuario no encontrado']); exit; } $db->commit(); echo json_encode(['success' => true, 'message' => 'Usuario eliminado correctamente']); } catch (Exception $e) { if ($db->inTransaction()) { $db->rollBack(); } http_response_code(500); echo json_encode(['success' => false, 'error' => 'Error al eliminar usuario: ' . $e->getMessage()]); }