
# Sales API

## Finalidade

Endpoint JSON para consultar vendas da tabela `tb_sales`, usado como fonte para dashboards e conferências.

## Endpoint

```text
GET /Sales/sales_api.php
```

## Parâmetros

| Parâmetro | Obrigatório | Descrição |
| --- | --- | --- |
| `data` | Sim, se não usar intervalo | Filtra um único dia no formato `YYYY-MM-DD`. |
| `data_inicio` | Sim, se não usar `data` | Início do intervalo. |
| `data_fim` | Sim, se não usar `data` | Fim do intervalo. |
| `unidade` | Não | Unidade exata. |
| `tipo_venda` | Não | Tipo da venda. |
| `telefone` | Não | Busca parcial por telefone. |
| `voucher` | Não | Voucher exato. |
| `limit` | Não | Limite máximo. O código tenta limitar, mas o padrão atual é alto. |

## Campos retornados

`id_unidade`, `unidade`, `tipo`, `id_membro`, `nome`, `sobrenome`, `telefone`, `item`, `descricao`, `voucher`, `inicio_em`, `quantidade`, `valor`, `valor_baixa`, `proxima_mensalidade`, `data_venda`, `forma_pagamento`, `observacoes`, `tipo_venda`, `comissao_colaborador`, `origem`.

## Exemplo

```bash
curl "https://pbi.motionfitacademia.com.br/Sales/sales_api.php?data=2026-06-10&limit=1000"
```

## Correções recomendadas

- Remover credenciais hardcoded.
- Desligar `display_errors` em produção.
- Corrigir o padrão do `limit`: o código define `min(limit, 10000)`, mas quando `limit` não vem usa `500000`. O ideal é padrão seguro, por exemplo `10000`.
- Adicionar autenticação ou restrição de IP se o endpoint expõe dados pessoais.
