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

# Conteúdo concluído

> O principal propósito desse webhook é fornecer uma notificação em tempo real quando um usuário finalizar um conteúdo. Isso permite que a instituição ou o sistema registre e acompanhe o progresso dos usuários.

# 📈 Tipo de dados do payload:

```json typedata5.json theme={null}
    Usuário:
 ID: number
 Nome: string
 Email: string
Conteúdo:
 ID: number
 ID da Instituição: number
 ID da Escola: number
 ID do Curso: number
 ID da Lição: number
 ID do Conteúdo: number ou null
 Resposta: string ou null
 Correto: boolean ou null
 Explicação: string ou null
 Pontos: number ou null
 Data de Envio: string ou null (formato: "yyyy-MM-dd HH:mm:ss")
 Entregue: boolean (0 ou 1)
 Hora Atual: string ou null (formato: "yyyy-MM-dd HH:mm:ss")
Curso:
 ID: number
 Nome: string
 ID do Certificado: number ou null
 Progresso: number (porcentagem de conclusão)
```

### Detalhes do Evento

* Nome: Nome do evento em formato de texto.
* Slug: Identificador único do evento em formato de texto.
* Enviar em: Data e hora do evento no formato "yyyy-MM-dd HH:mm:ss"..

### Dados do Usuário:

* ID: Identificador numérico do usuário.
* Nome: Nome do usuário em formato de texto.
* Email: Endereço de email do usuário em formato de texto.

### Dados do Conteúdo:

* ID: Identificador numérico do conteúdo da tabela conteudo\_completo.
* ID da Instituição: Identificador numérico da instituição relacionada ao conteúdo.
* ID da Escola: Identificador numérico da escola relacionada ao conteúdo.
* ID do Curso: Identificador numérico do curso relacionado ao conteúdo.
* ID da Lição: Identificador numérico da lição relacionada ao conteúdo.
* ID do Conteúdo: Identificador numérico do conteúdo específico (ou null se não houver conteúdo específico).
* Resposta: Resposta fornecida pelo usuário (ou null se não houver resposta).
* Correto: Indica se a resposta está correta (ou null se não houver correção).
* Explicação: Explicação associada ao conteúdo (ou null se não houver explicação).
* Pontos: Pontuação atribuída ao conteúdo (ou null se não houver pontuação).
* Data de Envio: Data e hora em que o conteúdo foi enviado (ou null se não houver data de envio).
* Entregue: Indica se o conteúdo foi entregue (0 para não entregue, 1 para entregue).
* Hora Atual: Hora atual no momento do evento (ou null se não estiver definida).

### Dados do Curso:

* ID: Identificador numérico do curso.
* Nome: Nome do curso em formato de texto.
* ID do Certificado: Identificador numérico do certificado associado ao curso (ou null se não houver certificado).
* Progresso

***

# 📈 Dados do evento:

Nome: Atividades - Conteúdo\
Slug: activities.content.completed\
Enviar em: Data do envio

***

# Ação para disparar o evento:

O evento será acionado quando o usuário completar algum conteúdo.

***

# Payload/Exemplo de resposta:

O sistema deve responder com um código HTTP 200 OK se a operação for bem-sucedida. Se houver algum erro, o sistema deve responder com um código HTTP 4xx ou 5xx e uma mensagem de erro.

```json payload5.json theme={null}
{
  "event": {
    "name": "Atividades - Conteúdo",
    "slug": "activities.content.completed",
    "send_at": "2022-03-10 12:01:43"
  },
  "data": {
    "user": {
      "id": 1234,
      "name": "Aluno",
      "email": "aluno@toolzz.me"
    },
    "content": {
      "id": 4,
      "institution_id": 123,
      "school_id": 654,
      "course_id": 666,
      "lesson_id": 4,
      "content_id": null,
      "answer": null,
      "correct": null,
      "explanation": null,
      "points": null,
      "send_date": null,
      "delivered": 0,
      "current_time": null
    },
    "course": {
      "id": 666,
      "name": "nome do curso",
      "certificate_id": null,
      "progress": 33
    }
  }
}
```

# 🔒 Segurança:

Certifique-se de que a URL de destino esteja correta antes de começar a enviar payloads. Verifique se os parâmetros enviados estão corretos e completos. Certifique-se de que os destinatários do webhook estejam corretos e sejam válidos. Registre e monitore todas as chamadas de webhook para fins de auditoria e rastreamento de problemas.

***

# ⚠️ Códigos de Erro:

O sistema deve responder com um código HTTP 200 OK se a operação for bem-sucedida. Se houver algum erro, o sistema deve responder com um código HTTP 4xx ou 5xx e uma mensagem de erro.

***

# 💬 Glossário:

* Payload: dados que são enviados para o webhook.
* Slug: um identificador único para o evento.
* Autenticação: processo de verificação da identidade do remetente de uma solicitação.
* content
  * ID - ID do registro na tabela conteudo\_completo
  * CONTENT\_ID - ID do conteúdo
