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