const axios = require('axios');


const cleanChannel = async (client, channelId) => {
    try {
        const channel = await client.channels.fetch(channelId);
        
        if (!channel) {
            console.log(`⚠️ Salon ${channelId} introuvable`);
            return;
        }

        const messages = await channel.messages.fetch({ limit: 100 });
        
        // Trier les messages par date (du plus ancien au plus récent)
        const sortedMessages = Array.from(messages.values()).sort((a, b) => a.createdTimestamp - b.createdTimestamp);
        
        // Exclure le premier message et les messages épinglés
        const messagesToDelete = sortedMessages.slice(1).filter(m => !m.pinned);
        
        if (messagesToDelete.length > 0) {
            await channel.bulkDelete(messagesToDelete);
            console.log(`🧹 ${messagesToDelete.length} message(s) supprimé(s) dans #${channel.name}`);
        } else {
            console.log(`✅ Aucun message à supprimer dans #${channel.name}`);
        }
        
    } catch (error) {
        console.log(`❌ Erreur lors du nettoyage du salon ${channelId}: ${error.message}`);
    }
};

const clean = async (client) => {
    try {
        const channelIds = process.env.CLEANER_CHANNEL_IDS;
        
        if (!channelIds) {
            console.log('⚠️ CLEANER_CHANNEL_IDS non défini dans .env');
            return;
        }

        // Séparer les IDs et nettoyer les espaces
        const channelIdList = channelIds.split(',').map(id => id.trim()).filter(id => id);
        
        if (channelIdList.length === 0) {
            console.log('⚠️ Aucun salon à nettoyer');
            return;
        }

        console.log(`🧹 Nettoyage de ${channelIdList.length} salon(s)...`);
        
        // Nettoyer chaque salon
        for (const channelId of channelIdList) {
            await cleanChannel(client, channelId);
        }
        
        console.log('✅ Nettoyage terminé');
        
    } catch (error) {
        console.log("❌ Erreur générale lors du nettoyage: " + error.message);
    }
};

module.exports = clean;