/**
 * Système de reminder pour les bumps
 * Vérifie toutes les minutes les bumps qui doivent avoir un reminder 2h après
 */

const chalk = require('chalk');
const { EmbedBuilder } = require('discord.js');
const { colors } = require('../../utils/constants');

module.exports = (client, db) => {
    setInterval(async () => {
        try {
            const now = Date.now();
            const twoHours = 2 * 60 * 60 * 1000;
            
            // Récupérer tous les bumps de plus de 2h qui n'ont pas encore eu de rappel
            const [bumps] = await db.query(
                'SELECT * FROM bumps WHERE reminderSent = ? AND bumpTime <= ?',
                [false, now - twoHours]
            );
            
            if (!bumps.length) return;
            
            for (const bump of bumps) {
                try {
                    const guild = client.guilds.cache.get(bump.guildId);
                    if (!guild) continue;
                    
                    const member = await guild.members.fetch(bump.userId).catch(() => null);
                    if (!member) continue;
                    
                    const [bumpChannels] = await db.query('SELECT * FROM bump_channels WHERE guildId = ?', [bump.guildId]);
                    let channel = bumpChannels.length > 0 ? guild.channels.cache.get(bumpChannels[0].channelId) : guild.systemChannel;
                    
                    if (!channel) continue;
                    
                    const reminderEmbed = new EmbedBuilder()
                        .setTitle('⏰ Rappel de Bump')
                        .setDescription(`${member.toString()}, tu peux maintenant refaire un bump !`)
                        .setColor(colors.info)
                        .setFooter({ text: 'Utilise /bump (Disboard) pour bump le serveur • /bumptime pour vérifier' })
                        .setTimestamp();
                    
                    await channel.send({ embeds: [reminderEmbed] });
                    
                    await db.query('UPDATE bumps SET reminderSent = ? WHERE id = ?', [true, bump.id]);
                    console.log(chalk.green(`✅ Reminder de bump envoyé à ${member.user.tag} dans la guild ${guild.name}`));
                } catch (err) {
                    console.error(chalk.red(`❌ Erreur reminder bump ${bump.id}:`), err);
                }
            }
        } catch (err) {
            console.error(chalk.red('❌ Erreur vérification reminders bump:'), err);
        }
    }, 60 * 1000);
};