@@ -54,6 +54,8 @@ module.exports = {
5454
5555 // Dar moedas diárias
5656 const dailyCoins = 100 ;
57+ const balanceBefore = economy . coins ;
58+
5759 economy = await prisma . economy . update ( {
5860 where : {
5961 userId_guildId : {
@@ -67,18 +69,59 @@ module.exports = {
6769 }
6870 } ) ;
6971
72+ // Registrar transação para rastreamento
73+ try {
74+ const transactionId = `TXN-${ Date . now ( ) . toString ( 36 ) . toUpperCase ( ) } ` ;
75+ await prisma . economyTransaction . create ( {
76+ data : {
77+ userId : message . author . id ,
78+ guildId : message . guild . id ,
79+ transactionId : transactionId ,
80+ type : 'daily' ,
81+ amount : dailyCoins ,
82+ balanceBefore : balanceBefore ,
83+ balanceAfter : economy . coins ,
84+ metadata : JSON . stringify ( { command : 'daily' , source : 'system' } )
85+ }
86+ } ) ;
87+ } catch ( transactionError ) {
88+ // Não quebrar o comando principal se houver erro no log
89+ console . log ( 'Erro ao registrar transação daily:' , transactionError . message ) ;
90+ }
91+
7092 await prisma . $disconnect ( ) ;
7193
94+ // Verificar se desbloqueou conquistas
95+ let achievementNotification = '' ;
96+ try {
97+ const achievementsModule = require ( './achievements' ) ;
98+ const userData = await achievementsModule . getUserCompleteData ( message . author . id , message . guild . id , prisma ) ;
99+ const unlockedAchievements = await achievementsModule . checkAchievements ( userData ) ;
100+
101+ // Verificar conquistas relacionadas a coins e daily streaks
102+ const allAchievements = unlockedAchievements . filter ( a =>
103+ [ 'first_coins' , 'coin_collector' , 'millionaire' , 'dedicated' , 'persistent' , 'daily_addict' ] . includes ( a . id )
104+ ) ;
105+
106+ if ( allAchievements . length > 0 ) {
107+ achievementNotification = `\n\n🏆 **Conquista desbloqueada!** ${ allAchievements [ 0 ] . emoji } ${ allAchievements [ 0 ] . name } ` ;
108+ await achievementsModule . giveRewards ( message . author . id , message . guild . id , allAchievements , prisma ) ;
109+ }
110+ } catch ( error ) {
111+ // Ignorar erros de conquistas para não quebrar o comando principal
112+ console . log ( 'Erro verificando conquistas do daily:' , error . message ) ;
113+ }
114+
72115 return message . reply ( {
73116 embeds : [ {
74117 title : '🎁 Daily Coletado!' ,
75- description : `Você recebeu **${ dailyCoins } ** moedas!` ,
118+ description : `Você recebeu **${ dailyCoins } ** moedas!${ achievementNotification } ` ,
76119 fields : [
77120 { name : '💰 Saldo Atual' , value : `${ economy . coins } moedas` , inline : true } ,
78121 { name : '🎯 Próximo Daily' , value : 'Em 24 horas' , inline : true }
79122 ] ,
80123 color : 0x00ff00 ,
81- footer : { text : 'Volte amanhã para mais moedas!' }
124+ footer : { text : 'Volte amanhã para mais moedas! • Use l~achievements para ver suas conquistas ' }
82125 } ]
83126 } ) ;
84127
0 commit comments