Skip to content

Roleta de sorteio (detentores de NFT)

Pré-requisitos de acesso

  • Permissão (módulo): manageToken
  • Licença/Feature: Nenhuma específica (depende da tokenização/NFTs)
  • Acesso: GERAL → Tokenização → NFTs/Assets → botão Roleta em uma NFT (rota /roulette/:id)

O que é / quando usar

Ferramenta de sorteio/giveaway entre os detentores de uma NFT específica. A tela carrega todos os donos (owners) do asset informado na URL (/roulette/:id), cruza com a base de usuários para exibir e-mail/nome, e oferece uma roleta em tela cheia que escolhe um ganhador aleatório.

Use para promoções do tipo "quem tem a NFT X concorre a um prêmio". O acesso é feito a partir da listagem de NFTs (Tokenização), não por um item de menu próprio.

Pré-condições

  • Permissão: manageToken cadastrado para a role do operador (permissão dupla: enum CPM + módulo dinâmico no DB). O guard de rota exige este módulo.
  • Licença/Feature: depende de o tenant ter tokenização/NFTs habilitadas.
  • Dependências de outras telas: a NFT/coleção precisa existir e ter detentores. O acesso parte de Tokenização → NFTs/Assets (/manage-assets), via botão que navega para roulette/<assetId>.

Passo a passo

  1. Em Tokenização → NFTs/Assets, localize a NFT e clique na ação que abre a Roleta.
  2. A tela lista os detentores (cliente, e-mail, token, preço pago).
  3. (Opcional) Use Mostrar/Ocultar preço pago para exibir o valor pago por cada detentor.
  4. Clique em Girar para abrir a roleta em tela cheia e sortear um ganhador.
  5. Clique em um detentor para ver Detalhes do proprietário.
  6. Use Exportar CSV para baixar a base de usuários sinalizando quem possui a NFT.

Filtros e colunas

Filtro / ColunaO que mostraOrigem do dado
Cliente (customer)Detentor da NFTgetAllOwners(assetId) cruzado com a base de usuários
E-mail (email)E-mail do detentormapa customer_id → usuário
TokenIdentificação do token/NFTowner record
Preço pago (price_paid)Quanto o detentor pagouexibido só com o toggle ligado; formatado via BigNumber (2 casas)
Mostrar preço pagoLiga/desliga a coluna de preçoshowPricePaid (client)

Ações e modais

  • Girar: abre o modal RouletteFullScreen com todos os detentores e sorteia visualmente um ganhador (a limitação de desenho da roleta é feita dentro do modal para suportar muitos participantes).
  • Detalhes do proprietário: abre RouletteOwnerDetailsModalComponent com dados do detentor selecionado.
  • Exportar CSV: baixa users_<data>.csv com a base de usuários e uma coluna haveNFT (Yes para quem possui a NFT sorteável).
  • Voltar: retorna à tela anterior (location.back()).

Regras de negócio / cuidados

Atenção

  • O sorteio considera apenas os detentores atuais do asset carregado — quem vendeu/transferiu a NFT antes do carregamento não entra.
  • O preço pago é informação sensível: mantenha a coluna oculta em apresentações públicas.
  • O resultado da roleta é um sorteio visual no cliente; registre o ganhador manualmente para fins de prêmio (a tela não persiste o resultado).
  • Valores financeiros: o preço pago é tratado como BigNumber e exibido com 2 casas — valores não-finitos aparecem como "-".

Telas relacionadas