Pular para o conteúdo principal

Wallet

Integracao de carteira, bonus, cashback, rollover e historico de transacoes no template via @cactus-agents/wallet.

Arquivos principais​

ArquivoTipoDescricao
store/wallet.tsStore (Zustand)Saldos, transacoes, rollover, modais
hooks/useWallet.tsHookEstado derivado, formatacao, actions
utils/walletRefresh.client.tsUtilRefresh automatico de saldo
components/user/wallet/ComponentsCards de saldo, transacoes, modais

Store — useWalletStore​

interface WalletState {
wallet: Wallet | null; // saldo real, bonus, cashback
walletLoading: boolean;
transactions: Transaction[]; // historico
transactionsMeta: TransactionMeta; // paginacao (total, currentPage, perPage)
transactionsLoading: boolean;
transactionsFilter: TransactionFilter;
rollover: Rollover | null; // status do rollover
walletModal: "bonus-withdraw" | "bonus-rules" | "cashback-redeem" | null;
}

Hook — useWallet()​

Estado derivado​

PropriedadeDescricao
formatMoney(value)Formatacao locale-aware (ex: R$ 1.234,56)
walletRealFormattedSaldo real formatado
walletBonusFormattedSaldo bonus formatado
walletCashbackFormattedSaldo cashback formatado
walletHasReal / walletHasBonus / walletHasCashbackFlags (saldo > 0)
walletHasFirstDepositSe o usuario ja depositou
rolloverAccomplishedSe o rollover foi cumprido

Actions​

ActionDescricao
hydrateFromLoader(data)Inicializa estado com dados do SSR loader
updateWallet()Refresh do saldo (via API route)
fetchTransactions(filter?)Busca transacoes paginadas
transferBonus()Transfere saldo bonus para real
transferCashback()Transfere cashback para real

API Routes​

RotaMetodoDescricao
api/wallet/refreshPOSTRefresh completo (saldo + rollover)
api/wallet/transactionsPOSTTransacoes paginadas com filtros
api/wallet/actionPOSTTransfer bonus/cashback
api/wallet/receiptPOSTGera comprovante de saque

Paginas​

RotaDescricao
/user/walletPagina principal: cards de saldo + rollover
/user/wallet/transactionsHistorico de transacoes com filtros e paginacao

Componentes​

Cards de saldo​

  • RealWalletCard — saldo real com botao de deposito
  • BonusWalletCard — saldo bonus + progresso do rollover
  • CashbackWalletCard — saldo cashback com botao de resgate

Transacoes​

  • TransactionTable — tabela de transacoes com status coloridos
  • TransactionTabs — tabs de tipo (deposito, saque, bonus, cashback)
  • TransactionPeriods — filtro por periodo
  • Pagination — navegacao de paginas

Modais​

  • BonusWithdrawModal — confirmacao de transferencia bonus → real
  • BonusRulesModal — regras do bonus ativo
  • CashbackRedeemModal — confirmacao de resgate de cashback
  • WithdrawDetailsModal — comprovante de saque

Outros​

  • WalletInitializer — componente montado no layout que atualiza o saldo automaticamente apos login
  • CountdownTimer — timer regressivo (ex: expiracao de bonus)
  • ProgressBar — barra de progresso do rollover