const {Command, Random, ErrorMessage, ErrorType} = require('../../lib.js')
const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js');
const feedM = require('../../models/feeds');
class setYTFeed extends Command{
    constructor(client){
        super(client, {
            name: 'resetFeed',
            aliases:['rsetFeed','rfeed'],
            description: 'Resets feed display on this channel. You can then set another feed or the same to use this channel.',
            needsAdmin:true,
        });
        this.client = client;
    }
    async run(message, args)
    {  
        var channel; 
        try {
            channel = await this.client.channels.fetch(args[0]);
        } catch (error) {
            return new ErrorMessage(this.client).send(ErrorType.Arguments, message, ['Channel does not exist.'])
        }    
        var auxClient = this.client
        feedM.findOneAndDelete({ChannelId: args[0]}, function (err, feed)
        {
            if(err || !feed) return new ErrorMessage(auxClient).send(ErrorType.Arguments, message, ['There are no feeds displaying in this channel'])
            const embed = new EmbedBuilder()
            const randomID = Random();
            embed.setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"})
            embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'}); 
            embed.setColor(0x110809);
            embed.setTimestamp()
            embed.setTitle(`${channel.name} channel is now free to be used with a different feed.`)

            const row = new ActionRowBuilder()
            .addComponents(
                new ButtonBuilder()
                    .setCustomId(randomID)
                    .setLabel('Remove this.')
                    .setStyle(ButtonStyle.Primary),
            );
            const filter = i => i.customId === randomID;
            message.channel.send({embeds: [embed], components: [row] }); 
            const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 });
            collector.on('collect', async m => 
            {
                _delete(message, m);
            });
            collector.on('end', async m=>
            {
                _delete(message,m);
            })  
        });
         
    }
       
}module.exports = setYTFeed;

function _delete(message, m)
{
    try {
        message.delete();
        m.message.delete();
    } catch (error) {
        console.log('SetYTID: Error deleting the message:',error)
    }
}