# Oratrix API - Mensagens em Grupo

## Status

Documentacao parcial baseada na parte enviada para o projeto Wezapp Shots.

Este grupo trata envio de mensagens para grupos WhatsApp. Para a primeira versao do Wezapp Shots, e recurso auxiliar/futuro. O fluxo principal continua focado em disparos para contatos individuais, salvo decisao operacional explicita.

## Base URL

```text
https://api-pro1.oratrixchat.com.br/v2/api/external/{ApiID}
```

## Autenticacao

```http
Authorization: Bearer {token}
```

## Endpoints do grupo

Total documentado nesta parte: 3 endpoints.

---

## 1. Enviar texto para grupo

```http
POST /group
```

Nome na documentacao Oratrix:

```text
SendGroupMessageAPIText
```

Descricao:

Enviar mensagem de texto para grupo do WhatsApp.

URL completa:

```text
https://api-pro1.oratrixchat.com.br/v2/api/external/{ApiID}/group
```

Body JSON:

```json
{
  "body": "A mensagem desejada",
  "number": "12356818915189153",
  "externalKey": "chave-001",
  "isClosed": false
}
```

Observacao:

Neste endpoint, `number` representa o ID do grupo, nao telefone de contato individual.

---

## 2. Enviar arquivo para grupo

```http
POST /group
```

Nome na documentacao Oratrix:

```text
SendGroupMessageAPIFile
```

Descricao:

Enviar arquivo para grupo via `multipart/form-data`.

URL completa:

```text
https://api-pro1.oratrixchat.com.br/v2/api/external/{ApiID}/group
```

Body:

```text
Form Data
```

Campos:

| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---:|---|
| media | file | Sim | Arquivo(s) enviados |
| body | Texto | Nao | Texto da mensagem |
| number | Texto | Sim | ID do grupo |
| externalKey | Texto | Sim | Chave unica de controle |
| isClosed | Boolean | Nao | Fechar ticket apos envio |

---

## 3. Enviar midia por URL para grupo

```http
POST /groupMediaUrl
```

Nome na documentacao Oratrix:

```text
SendMessageAPIFileURLGroup
```

Descricao:

Enviar midia por URL para grupo do WhatsApp.

URL completa:

```text
https://api-pro1.oratrixchat.com.br/v2/api/external/{ApiID}/groupMediaUrl
```

Body JSON:

```json
{
  "mediaUrl": "https://exemplo.com/imagem.png",
  "body": "A mensagem desejada",
  "number": "12356818915189153",
  "externalKey": "chave-001",
  "isClosed": false
}
```

## Mapeamento sugerido com Wezapp Shots

| Wezapp Shots | Oratrix |
|---|---|
| Grupo externo futuro | `number` como ID do grupo |
| Job interno futuro de grupo | `externalKey` |
| Log de envio | Request/response do endpoint |

## Pendencias tecnicas para validar

- Confirmar formato exato do ID do grupo aceito em `number`.
- Confirmar se aceita ID com sufixo `@g.us` ou apenas numero interno.
- Confirmar se retorna identificador externo de mensagem.
- Confirmar se `isClosed` tem efeito em mensagens de grupo.
- Confirmar limites e formatos de arquivo em envio multipart.
- Confirmar se envio para grupos respeita regras diferentes de spam/limite.

## Regras recomendadas para o Wezapp Shots

1. Nao misturar disparos para grupos com disparos individuais sem regra comercial separada.
2. Gerar `externalKey` unica quando usar envio para grupo.
3. Registrar auditoria e logs completos.
4. Tratar grupos como destino operacional distinto de contatos individuais.
