> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thenewscc.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Adicionar Mensagem

> Adiciona uma nova mensagem a um ticket

## Descrição

Adiciona uma nova mensagem ao histórico de conversação de um ticket. Suporta operações em lote e envio de emails automáticos. Requer autenticação.

## Headers

<ParamField header="Authorization" type="string" required>
  Bearer token JWT para autenticação
</ParamField>

<ParamField header="Content-Type" type="string" required>
  `application/json`
</ParamField>

## Path Parameters

<ParamField path="id" type="number">
  ID do ticket (ignorado se `support_ids` for fornecido)
</ParamField>

## Body Parameters

<ParamField body="mensagem" type="string" required>
  Conteúdo da mensagem (suporta HTML)
</ParamField>

<ParamField body="autor" type="string" required>
  Email do autor da mensagem
</ParamField>

<ParamField body="origem" type="string" default="admin">
  Origem da mensagem

  Valores aceitos:

  * `admin` - Mensagem da equipe de suporte
  * `usuario` - Mensagem do usuário
  * `email` - Mensagem recebida por email
</ParamField>

<ParamField body="status" type="string" default="Respondido">
  Status da mensagem

  Valores aceitos:

  * `Pendente`
  * `Respondido`
  * `Resolvido`
</ParamField>

<ParamField body="enviar_email" type="boolean" default="true">
  Se deve enviar a mensagem por email para o usuário

  Funciona apenas se o ticket tem email e `origem = admin`
</ParamField>

<ParamField body="support_ids" type="array">
  Array de IDs de tickets para adicionar a mesma mensagem em lote.
  Quando fornecido, o `id` do path é ignorado.
</ParamField>

## Response

<ResponseField name="success" type="boolean" required>
  Indica se a operação foi bem-sucedida
</ResponseField>

<ResponseField name="data" type="object">
  <Expandable title="Resposta para mensagem única">
    <ResponseField name="modo" type="string">
      Sempre `unico` para operação em um único ticket
    </ResponseField>

    <ResponseField name="id" type="number">
      ID da mensagem criada
    </ResponseField>

    <ResponseField name="email_enviado" type="boolean">
      Se o email foi enviado ao usuário
    </ResponseField>
  </Expandable>

  <Expandable title="Resposta para mensagem em lote">
    <ResponseField name="modo" type="string">
      Sempre `lote` para operação em múltiplos tickets
    </ResponseField>

    <ResponseField name="enviados" type="number">
      Quantidade de mensagens enviadas com sucesso
    </ResponseField>

    <ResponseField name="falhas" type="number">
      Quantidade de falhas
    </ResponseField>

    <ResponseField name="emails_enviados" type="number">
      Quantidade de emails enviados
    </ResponseField>

    <ResponseField name="resultados" type="array">
      Detalhes de cada operação
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash Mensagem Simples theme={null}
  curl -X POST "https://worker.thenewscc.com/support/12345/mensagens" \
    -H "Authorization: Bearer seu_token_jwt" \
    -H "Content-Type: application/json" \
    -d '{
      "mensagem": "Obrigado pelo contato. Estamos analisando seu caso.",
      "autor": "suporte@waffle.com.br"
    }'
  ```

  ```bash Com Envio de Email theme={null}
  curl -X POST "https://worker.thenewscc.com/support/12345/mensagens" \
    -H "Authorization: Bearer seu_token_jwt" \
    -H "Content-Type: application/json" \
    -d '{
      "mensagem": "<p>Seu problema foi resolvido.</p><p>Por favor, verifique e confirme.</p>",
      "autor": "joao@waffle.com.br",
      "enviar_email": true
    }'
  ```

  ```bash Mensagem em Lote theme={null}
  curl -X POST "https://worker.thenewscc.com/support/lote/mensagens" \
    -H "Authorization: Bearer seu_token_jwt" \
    -H "Content-Type: application/json" \
    -d '{
      "mensagem": "Informamos que houve uma atualização no sistema.",
      "autor": "suporte@waffle.com.br",
      "support_ids": [12345, 12346, 12347],
      "enviar_email": true
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json Success - Mensagem Única theme={null}
  {
    "success": true,
    "data": {
      "modo": "unico",
      "id": 567,
      "email_enviado": false
    }
  }
  ```

  ```json Success - Email Enviado theme={null}
  {
    "success": true,
    "data": {
      "modo": "unico",
      "id": 568,
      "email_enviado": true
    }
  }
  ```

  ```json Success - Lote theme={null}
  {
    "success": true,
    "data": {
      "modo": "lote",
      "enviados": 3,
      "falhas": 0,
      "emails_enviados": 2,
      "resultados": [
        { "id": 12345, "sucesso": true, "email_enviado": true },
        { "id": 12346, "sucesso": true, "email_enviado": true },
        { "id": 12347, "sucesso": true, "email_enviado": false }
      ]
    }
  }
  ```

  ```json Error - Campos Obrigatórios theme={null}
  {
    "success": false,
    "message": "Mensagem e autor sao obrigatorios"
  }
  ```

  ```json Error - Ticket Não Encontrado theme={null}
  {
    "success": false,
    "message": "Ticket nao encontrado"
  }
  ```
</ResponseExample>

## Comportamento Automático de Status

<Note>
  Quando o email é enviado com sucesso (`email_enviado: true`), o status do ticket é automaticamente alterado para **`resolved`**. Se o envio do email falhar, o status permanece inalterado.
</Note>

<Note>
  Se o leitor responder ao email, o status do ticket volta automaticamente para **`open`**.
</Note>
