Skip to content

Recompensas (resgate por código)

Pré-requisitos de acesso

  • Permissão (módulo): viewCommissions OU manageCommissions
  • Licença/Feature: Nenhuma
  • Contêiner do menu: GERAL → grupo Comissões e Recompensas

O que é / quando usar

Tela de campanhas de recompensa por código de resgate. Você cadastra uma recompensa (um Token ou uma NFT) associada a um código de resgate e uma janela de campanha (data início/fim). O sistema gera um QR Code / link que, escaneado pelo usuário, abre o Midas-Web já com o redemptionCode na URL para o resgate.

Use para campanhas promocionais (brinde por código), distribuição de NFTs de evento ou bonificação em token vinculada a um código impresso/divulgado. Não confundir com o Clube de Recompensas (missões/tiers) — aqui é resgate pontual por código.

Pré-condições

  • Permissão: viewCommissions ou manageCommissions (permissão dupla: enum CPM + módulo dinâmico no DB).
  • Licença/Feature: Nenhuma.
  • Dependências de outras telas: o Token (Tokenização → Gerenciar Tokens) ou a NFT (Tokenização → NFTs/Assets) que será dado como recompensa precisa existir antes — o formulário só aceita selecionar um asset/token já cadastrado (autocomplete validado).

Passo a passo

  1. Acesse o menu Comissões e Recompensas → Recompensas (/manage-reward-config/list).
  2. A lista mostra as recompensas com nome, asset, tipo, e um toggle de ativação. Use a busca e a paginação (server-side) para localizar.
  3. Clique em Novo para abrir o formulário de criação.
  4. Escolha o Tipo de recompensa (NFT ou Token), busque e selecione o asset/token (o chip "validado" aparece ao selecionar), defina nome, código de resgate, datas da campanha e, para Token, a quantidade.
  5. Salve. O QR Code/link de resgate é montado a partir do código e pode ser copiado ou baixado.

Campos

CampoO que éObrigatório?Efeito no sistema/backend
Nome (name)Nome interno da campanha de recompensaSimIdentifica a configuração; máx. 200 caracteres.
Tipo de recompensa (rewardType)NFT ou TokenSimDefine qual catálogo o autocomplete busca (NFTs/assets ou tokens) e se o campo Quantidade aparece. Trocar o tipo limpa o asset selecionado.
Asset/Token (assetId)Asset (NFT) ou token concedido como recompensaSimResolvido por autocomplete validado contra o catálogo real. Erros de backend tratados: "NFT not found" / "Token not found".
Código de resgate (redemptionCode)Código que o usuário usa para resgatarSimDeve ser único; backend recusa com "redemption code is already in use". Compõe a URL/QR de resgate. Máx. 50 caracteres.
Quantidade (quantity)Quantidade de tokens a creditarCondicional (só Token)Só aparece e é enviada quando rewardType = Token; em NFT é descartada.
Data de início (campaignStartDate)Início da vigência da campanhaSimDefine quando o resgate passa a valer. Ajuste de fuso aplicado na carga/edição.
Data de fim (campaignEndDate)Fim da vigência da campanhaSimDefine o encerramento da janela de resgate.
QR Code / Link (qrcodeImg)Imagem/URL de resgateGeradoMontado como <host>/home?redemptionCode=<código>; pode ser copiado ou baixado como PNG.
Ativo (isActive)Liga/desliga a campanhaToggle na listagem; abre confirmação antes de ativar/desativar. Recompensa inativa não resgata.

Ações e modais

  • Novo / Editar / Visualizar: o formulário opera em três modos. Em view os campos ficam desabilitados e há botão Editar. O botão Salvar só habilita quando nome, asset, tipo, código de resgate e ambas as datas estão preenchidos.
  • Copiar URL / Baixar imagem: copia o link de resgate ou baixa o QR Code como code-reward-<código>.png.
  • Toggle Ativo: ativa/desativa a campanha com confirmação (bottom-sheet). Em caso de erro, o toggle é revertido.
  • Excluir (lixeira): confirma e remove a configuração.

Regras de negócio / cuidados

Atenção

  • O código de resgate é único por tenant — reaproveitar um código existente é recusado pelo backend.
  • O asset/token precisa existir e ser válido no momento da criação; o autocomplete não permite digitar um id arbitrário sem validação.
  • A janela de campanha (início/fim) delimita o resgate; fora dela o código não concede a recompensa.
  • Valores financeiros: a quantidade de tokens é tratada com precisão; confira as casas decimais do token escolhido.

Telas relacionadas