
# API de Metas

## Base URL

```text
https://pbi.motionfitacademia.com.br/metas/api/public
```

## Autenticação

A API usa JWT no header:

```http
Authorization: Bearer <TOKEN>
```

O token é obtido por `POST /login` e expira em aproximadamente 1 hora.

## Endpoints

| Método | Caminho | Descrição | Auth |
| --- | --- | --- | --- |
| `GET` | `/health` | Health check. | Não |
| `POST` | `/login` | Gera token JWT. | Não |
| `GET` | `/users` | Lista usuários. | Sim |
| `POST` | `/users` | Cria/atualiza usuário. | Sim |
| `GET` | `/metas` | Lista metas com filtros. | Sim |
| `POST` | `/metas` | Cria meta. | Sim |
| `PUT` | `/metas/{id}` | Atualiza meta. | Sim |
| `DELETE` | `/metas/{id}` | Exclui meta. | Sim |

## Login

```bash
curl -X POST "https://pbi.motionfitacademia.com.br/metas/api/public/login"   -H "Content-Type: application/json"   -d '{"usuario":"admin.rede","senha":"<SENHA>"}'
```

## Criar meta

```bash
curl -X POST "https://pbi.motionfitacademia.com.br/metas/api/public/metas"   -H "Authorization: Bearer <TOKEN>"   -H "Content-Type: application/json"   -d '{
    "unidade":"MOTION FIT - BELAS ARTES",
    "nome_consultor":"CONSULTOR EXEMPLO",
    "meta":50,
    "competencia":"2026-06"
  }'
```

## Filtros de listagem

| Query string | Descrição |
| --- | --- |
| `consultor` | Busca parcial por nome do consultor. |
| `unidade` | Filtra unidade. Gerente só acessa unidades do token. |
| `competencia` | Competência no formato `YYYY-MM`. |

## Observações

- O endpoint público permite CORS aberto no código analisado. Revisar se isso deve ficar em produção.
- A API reutiliza as regras de permissão do perfil no token.
