// ============================================================ // BUSCA DO PEDIDO – CORRIGIDA (Claude) // ============================================================ async function verificarPedidoAtivo() { const container = document.getElementById('message-container'); const pedidoAtivoStr = localStorage.getItem('pedidoAtivo'); if (!pedidoAtivoStr) { mostrarEstadoVazio(container); return false; } try { const pedidoAtivo = JSON.parse(pedidoAtivoStr); let order = null; let metodo = ''; // 1. Tenta por id real if (pedidoAtivo.id) { order = await buscarPedidoPorId(pedidoAtivo.id); metodo = 'id'; } // 2. Se não encontrou, tenta por payment_id if (!order && pedidoAtivo.payment_id) { order = await buscarPedidoPorPaymentId(pedidoAtivo.payment_id); metodo = 'payment_id'; if (order) { // Atualiza localStorage com o id real localStorage.setItem('pedidoAtivo', JSON.stringify({ id: order.id, payment_id: order.payment_id, numero_pedido: order.numero_pedido, status: order.status, timestamp: Date.now(), })); } } // 3. Fallback: busca pelo guest_id (pedido mais recente) if (!order) { const guestId = getGuestId(); if (guestId) { order = await buscarUltimoPedidoPorGuestId(guestId); metodo = 'guest_id'; if (order) { localStorage.setItem('pedidoAtivo', JSON.stringify({ id: order.id, payment_id: order.payment_id, numero_pedido: order.numero_pedido, status: order.status, timestamp: Date.now(), })); } } } // 4. Se ainda não encontrou, mostra vazio if (!order) { localStorage.removeItem('pedidoAtivo'); mostrarEstadoVazio(container); return false; } // Validações if (order.status === 'canceled') { localStorage.removeItem('pedidoAtivo'); mostrarCancelado(container); return false; } if (isOrderExpired(order)) { localStorage.removeItem('pedidoAtivo'); mostrarExpirado(container); return false; } // Exibe card do pedido exibirCardPedido(container, order); return true; } catch (e) { console.error('[MeusPedidos] Erro:', e); mostrarErro(container); return false; } } // ============================================================ // FUNÇÕES AUXILIARES DE EXIBIÇÃO // ============================================================ function mostrarEstadoVazio(container) { container.innerHTML = `
Você não possui um pedido ativo no momento.
Que tal explorar nosso cardápio?