// deploy-commands.js
const { REST, Routes, SlashCommandBuilder } = require('discord.js');
require('dotenv').config();

const commands = [
    new SlashCommandBuilder()
        .setName('ping')
        .setDescription('Replies with Pong!'),
    new SlashCommandBuilder()
        .setName('finduser')
        .setDescription('Find a user by username')
        .addStringOption(option =>
            option.setName('username')
                .setDescription('The username to search for')
                .setRequired(true))
        .addStringOption(option =>
            option.setName('game')
                .setDescription('Specify a game to view stats for')
                .setRequired(false)),
    new SlashCommandBuilder()
        .setName('matchhistory')
        .setDescription('View match history')
        .addStringOption(option =>
            option.setName('username')
                .setDescription('The username to search for')
                .setRequired(true))
        .addStringOption(option =>
            option.setName('game')
                .setDescription('Filter by game')
                .setRequired(false)),
];

const rest = new REST({ version: '10' }).setToken(process.env.BOT_TOKEN);

(async () => {
    try {
        console.log('Started refreshing application (/) commands.');
        console.log('Commands to be deployed:', commands.map(cmd => cmd.name));

        await rest.put(
            Routes.applicationCommands(process.env.CLIENT_ID),
            { body: commands.map(command => command.toJSON()) },
        );

        console.log('Successfully reloaded application (/) commands.');
    } catch (error) {
        console.error(error);
    }
})();