# Entrepreços

Uma página de comparação Brasil x Estados Unidos com cotações PTAX oficiais e ofertas ligadas a anúncios verificáveis. A interface não contém produtos nem preços de demonstração.

## Executar localmente

Requer Node.js 20.6 ou superior. No terminal, entre nesta pasta e execute:

```powershell
Copy-Item .env.example .env
# Preencha as credenciais dos provedores no arquivo .env e então execute:
node --env-file=.env server.mjs
```

Abra `http://localhost:4173`. O token deve ficar no servidor. A API do Mercado Livre pode exigir autorização e estar sujeita às permissões e políticas vigentes da plataforma.

Sem credenciais de provedor, a busca mostra as fontes como desconectadas e mantém os painéis de produtos sem redirecionar para outros sites ou apresentar ofertas fictícias. A cotação PTAX continua sendo consultada diretamente ao Banco Central no navegador.

## Comparação e estimativa de importação

As ofertas verificadas podem ser ordenadas do menor para o maior ou do maior para o menor preço em cada mercado. Para anúncios americanos, a página mostra o equivalente nominal em reais pela PTAX e permite preencher esse preço na estimativa de importação.

A estimativa soma produto, frete e seguro ao valor aduaneiro; calcula o Imposto de Importação pelo cenário escolhido (fora do Remessa Conforme: 60%; dentro do programa: 0% até US$ 50 e 60% menos US$ 30 acima do limite), calcula o ICMS "por dentro" com a alíquota informada para o estado e soma despesas adicionais informadas. As regras atuais e o tratamento do ICMS devem ser conferidos para a operação real. A PTAX do dia é apenas uma aproximação do câmbio usado pela Receita na data do registro aduaneiro; o cálculo não inclui IOF ou tarifas do pagamento.

Sem APIs comerciais conectadas, não é tecnicamente possível listar e atualizar todos os anúncios da internet no próprio site: não existe um catálogo público universal com preço, frete, disponibilidade e permissão de revenda de dados. A comparação embutida depende de APIs ou feeds autorizados por varejista/marketplace.

## Fontes conectadas e limites

- **Câmbio:** API oficial PTAX/Olinda do Banco Central, cotação de venda. A página procura a cotação do dia e recua até dez dias corridos para cobrir fins de semana e feriados. Cache local de seis horas. Em falha sem cache, conversão e simulação ficam indisponíveis.
- **Brasil:** endpoint oficial de busca do Mercado Livre, habilitado com token de aplicação no servidor. Resultado conserva título, preço, imagem, identificador de catálogo quando fornecido, URL específica e hora de consulta.
- **Estados Unidos:** eBay Browse API no marketplace `EBAY_US`, com OAuth client credentials no servidor. O adaptador retorna anúncios com preço em USD, vendedor, link específico e frete quando a API informa. Amazon Creators API e Keepa são opções futuras, mas exigem credenciais e, no caso da Amazon, aprovação no programa de afiliados.
- **Histórico por código de barras:** Open Prices / Open Food Facts, consulta pública de leituras comunitárias por GTIN/EAN. O gráfico separa BRL e USD e mostra as datas reais dos registros. A base é colaborativa, tem cobertura irregular e não é um histórico contínuo de ofertas de lojas; sem GTIN ou sem registros, o gráfico explica por que não pode ser mostrado.
- **Alertas e acompanhamento contínuo de estoque:** ainda não disponíveis; exigem coleta persistente e integrações autorizadas. O histórico público descrito acima já está disponível, mas só aparece quando a oferta retorna GTIN e há registros comunitários em BRL ou USD.

## Configurar fontes no Cloudflare

No projeto Pages `entreprecos-br-us`, acesse **Settings → Variables and Secrets** e adicione estes valores como secrets:

- `ML_ACCESS_TOKEN`: token OAuth de uma aplicação Mercado Livre autorizada. Tokens de acesso duram seis horas; para conexão contínua, será necessário implementar e armazenar com segurança o fluxo de renovação com refresh token.
- `EBAY_CLIENT_ID` e `EBAY_CLIENT_SECRET`: credenciais de aplicação do eBay Developers Program. O Worker obtém tokens de aplicação OAuth automaticamente.

Salve os segredos e publique uma implantação nova para aplicá-los. Não coloque credenciais no repositório, neste README ou no navegador. Enquanto faltarem segredos, cada fonte fica marcada como desconectada.

`server.mjs` e `_worker.js` mantêm adaptadores independentes atrás de `/api/offers`; resultados de um provedor continuam disponíveis quando outro falha. `/api/history?gtin=...` consulta os registros públicos do Open Prices. A comparação Brasil–EUA só declara equivalência quando ambas as fontes retornam o mesmo GTIN com confiança alta.

O cálculo “SIMULAR CUSTO FINAL” é editável pelo usuário e informativo. Frete, alíquotas e outras taxas começam vazios ou zerados quando não fornecidos. A estimativa não escolhe um regime tributário, não determina incidência legal e não substitui a confirmação do custo com a transportadora, loja ou autoridade competente.
