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

# Sistema de Convites

> Crie e gerencie codigos de convite para acesso a cursos

## Convites

O sistema de convites permite criar codigos de acesso que novos usuarios usam para se cadastrar e matricular automaticamente em cursos especificos.

## Como funciona

Cada convite gera um codigo unico de 7 caracteres (ex: `AB2K7MZ`) que pode ser compartilhado via link ou digitado manualmente. Quando alguem aceita o convite:

1. Se for um novo usuario → conta criada automaticamente com role "estudante"
2. Se ja tiver conta → matriculado no curso do convite
3. O uso e registrado para rastreamento

## Criar um convite

<Steps>
  <Step title="Acesse Admin → Convites">
    Clique em "Novo convite"
  </Step>

  <Step title="Preencha os campos">
    Defina titulo e selecione o curso associado.
  </Step>

  <Step title="Configure limites (opcional)">
    Defina limite de usos e/ou data de expiracao.
  </Step>

  <Step title="Gere o codigo">
    O sistema gera um codigo unico de 7 caracteres automaticamente.
  </Step>

  <Step title="Compartilhe">
    Copie o link ou codigo e envie para os futuros estudantes.
  </Step>
</Steps>

## Campos do convite

| Campo                 | Obrigatorio | Descricao                                                               |
| --------------------- | ----------- | ----------------------------------------------------------------------- |
| **Titulo**            | Sim         | Nome identificador do convite                                           |
| **Curso**             | Sim         | Curso ao qual o usuario sera matriculado                                |
| **Descricao**         | Nao         | Informacoes adicionais sobre o convite                                  |
| **Imagem de fundo**   | Nao         | Imagem exibida na pagina de aceite                                      |
| **Limite de usos**    | Nao         | Numero maximo de vezes que o convite pode ser usado. Vazio = ilimitado. |
| **Data de expiracao** | Nao         | Data limite para aceitar o convite. Vazio = sem expiracao.              |

## Tipos de convite

<Tabs>
  <Tab title="Uso unico">
    Configure `limite_usos = 1` para criar um convite exclusivo para uma pessoa.
  </Tab>

  <Tab title="Uso multiplo">
    Configure um limite especifico (ex: 30 usos) para turmas ou eventos.
  </Tab>

  <Tab title="Ilimitado">
    Deixe o limite de usos vazio para criar um convite permanente sem restricao de quantidade.
  </Tab>

  <Tab title="Com expiracao">
    Defina uma data de expiracao para convites temporarios (ex: evento ou promocao).
  </Tab>
</Tabs>

## Fluxo de aceite

Quando um usuario acessa o link do convite:

<Steps>
  <Step title="Pagina de convite">
    O usuario ve o titulo, descricao e imagem do convite.
  </Step>

  <Step title="Preenche nome e email">
    Campos obrigatorios para identificacao.
  </Step>

  <Step title="Conta criada ou vinculada">
    Se o email ja existe, o usuario e matriculado no curso. Se nao, uma nova conta e criada com role "estudante".
  </Step>

  <Step title="Email enviado">
    Novos usuarios recebem um email de boas-vindas com a senha de acesso.
  </Step>
</Steps>

<Info>
  Novos usuarios criados via convite recebem a flag `require_change_password`, solicitando troca de senha no primeiro acesso.
</Info>

## Protecao contra abuso

O sistema de convites possui limites de taxa para evitar abuso:

* **Por IP**: maximo 5 tentativas a cada 15 minutos
* **Por email**: maximo 3 tentativas por hora

## Rastreamento

Para cada convite, voce pode ver:

* **Usos atuais** - Quantas vezes o convite foi aceito
* **Lista de aceitos** - Quem aceitou, quando e com qual email
* **Status** - Ativo, expirado ou limite atingido
* **Vagas restantes** - Se houver limite, quantas vagas restam

## Gerenciar convites

| Acao          | Descricao                                       |
| ------------- | ----------------------------------------------- |
| **Editar**    | Alterar titulo, descricao, limites e expiracao  |
| **Desativar** | Desabilitar o convite sem excluir (soft delete) |
| **Filtrar**   | Por curso ou status (ativo/inativo)             |

### Permissoes

* **Owner e Admin**: podem criar e gerenciar qualquer convite
* **Professor**: pode criar convites apenas para cursos que criou ou nos quais e professor associado

## Proximos passos

<CardGroup cols={2}>
  <Card title="Gestao de membros" icon="users" href="/pt-br/admin/member-management">
    Gerencie usuarios existentes
  </Card>

  <Card title="Configuracoes" icon="gear" href="/pt-br/admin/platform-settings">
    Configure a senha padrao para novos membros
  </Card>
</CardGroup>
