# Oratrix API - Canais e Sessoes

## Status

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

Este grupo e importante para a **chipeira digital**, pois permite consultar canais, sessoes e dados de conexao WhatsApp.

## 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: 8 endpoints.

---

## 1. Buscar informacoes de canal pelo numero

```http
POST /showChannel
```

Nome na documentacao Oratrix:

```text
ShowChannelInformation
```

Descricao:

Buscar informacoes de um canal pelo numero.

URL completa:

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

Body JSON:

```json
{
  "number": "5511999999999"
}
```

Observacao para Wezapp Shots:

Este endpoint pode ajudar a validar se um numero/canal existe antes de cadastrar ou sincronizar com a chipeira digital.

---

## 2. Buscar informacoes de canal pelo ID

```http
POST /showChannelById
```

Nome na documentacao Oratrix:

```text
ShowChannelInformationById
```

Descricao:

Buscar informacoes de um canal pelo ID.

URL completa:

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

Body JSON:

```json
{
  "id": 43
}
```

Observacao para Wezapp Shots:

Este endpoint e candidato principal para sincronizar `wezapp_channels.external_channel_id` com o canal real do Oratrix.

---

## 3. Listar grupos e participantes da sessao WhatsApp

```http
POST /listGroupInfo
```

Nome na documentacao Oratrix:

```text
ListGroupsInfo
```

Descricao:

Listar grupos e participantes da sessao WhatsApp.

URL completa:

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

Body JSON:

```json
{
  "listGroups": true,
  "listParticipants": true
}
```

Observacao para Wezapp Shots:

Este endpoint nao e prioridade para disparo individual em massa, mas pode ser util em operacoes futuras envolvendo grupos.

---

## 4. Criar sessao WhatsApp

```http
POST /createtSession
```

Nome na documentacao Oratrix:

```text
CreateSession
```

Descricao:

Criar uma nova sessao/instancia WhatsApp.

URL completa:

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

Body JSON:

```json
{
  "name": "Minha Instancia",
  "status": "DISCONNECTED",
  "type": "baileys"
}
```

Observacao importante:

A rota informada esta como `/createtSession`. Manter exatamente esse path ate confirmacao oficial. Pode ser erro de digitacao na API, mas nao devemos corrigir sem validar.

---

## 5. Excluir sessao WhatsApp

```http
POST /deleteSession
```

Nome na documentacao Oratrix:

```text
DeleteSession
```

Descricao:

Excluir uma sessao WhatsApp.

URL completa:

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

Body JSON:

```json
{
  "whatsappId": 1
}
```

Observacao para Wezapp Shots:

Esta acao deve ser protegida por permissao alta e auditoria, porque pode remover uma sessao usada em campanhas.

---

## 6. Iniciar/conectar sessao WhatsApp

```http
POST /startSession
```

Nome na documentacao Oratrix:

```text
StartSession
```

Descricao:

Iniciar/conectar uma sessao WhatsApp.

URL completa:

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

Body JSON:

```json
{
  "whatsappId": 1
}
```

Observacao para Wezapp Shots:

Este endpoint pode ser usado pelo painel interno da chipeira digital para tentar conectar uma sessao pausada/desconectada.

---

## 7. Obter QR Code de sessao

```http
POST /qrCodeSession
```

Nome na documentacao Oratrix:

```text
ShowQrCode
```

Descricao:

Obter o QR Code de uma sessao para conexao.

URL completa:

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

Body JSON:

```json
{
  "whatsappId": 1
}
```

Observacao para Wezapp Shots:

O retorno deste endpoint precisa ser validado antes de definir como exibir o QR Code no painel. Pode retornar imagem, base64, string ou URL.

---

## 8. Solicitar novo QR Code de sessao

```http
POST /requestNewQrCodeSession
```

Nome na documentacao Oratrix:

```text
RequestNewQrCode
```

Descricao:

Solicitar novo QR Code para uma sessao.

URL completa:

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

Body JSON:

```json
{
  "whatsappId": 1
}
```

Observacao para Wezapp Shots:

Acao sensivel. Deve registrar auditoria e ser limitada a usuarios autorizados.

## Mapeamento sugerido com Wezapp Shots

| Wezapp Shots | Oratrix |
|---|---|
| `wezapp_channels.id` | ID interno do canal no Wezapp |
| `wezapp_channels.external_channel_id` | `id` ou `whatsappId` no Oratrix |
| `wezapp_channels.phone_number` | `number` usado em `/showChannel` |
| `wezapp_channels.provider` | `oratrix` |
| `wezapp_channels.status` | Status local do canal no Wezapp |
| `wezapp_channel_groups.id` | Agrupamento interno da chipeira digital |

## Pendencias tecnicas para validar

- Confirmar se `/createtSession` e exatamente o endpoint correto.
- Confirmar se `id` e `whatsappId` sao a mesma referencia ou entidades diferentes.
- Confirmar formato de retorno de `/showChannel`.
- Confirmar formato de retorno de `/showChannelById`.
- Confirmar formato de retorno de `/qrCodeSession`.
- Confirmar se QR Code retorna imagem, base64, texto ou URL.
- Confirmar status possiveis de sessao alem de `DISCONNECTED`.
- Confirmar tipos possiveis alem de `baileys`.

## Regras recomendadas para o Wezapp Shots

1. Cadastrar canais localmente no Wezapp antes de usar em campanhas.
2. Guardar referencia externa do Oratrix em `external_channel_id`.
3. Nao excluir sessao automaticamente a partir de falha de campanha.
4. Pausar canal localmente antes de executar acoes destrutivas.
5. Registrar auditoria em criar, excluir, iniciar sessao e solicitar QR Code.
6. Tratar canais desconectados como indisponiveis para novos disparos.
