const { SlashCommandBuilder, MessageFlags } = require('discord.js');
const soloMessage = require("./soloMessage.json");
const serverMessage = require("./serverMessage.json");

module.exports = {
	data: new SlashCommandBuilder()
		.setName('transfer-save')
		.setDescription('Explique comment transférer une sauvegarde Palworld')
		.addStringOption(option =>
			option.setName('type')
				.setDescription('Type de sauvegarde à transférer')
				.setRequired(true)
				.addChoices(
					{ name: 'Solo', value: 'solo' },
					{ name: 'Serveur', value: 'serveur' }
				))
		.addUserOption(option =>
			option.setName('utilisateur')
				.setDescription('Utilisateur à mentionner')
				.setRequired(false)),
	async execute(interaction) {
		const type = interaction.options.getString('type');
		const mentionnedUser = interaction.options.getUser('utilisateur');
		const targetUser = mentionnedUser || interaction.user;

		try {
			let messageToSend;
			
			if (type === 'solo') {
				messageToSend = soloMessage;
			} else {
				messageToSend = serverMessage;
			}

			// Envoyer le message en privé au bon utilisateur
			await targetUser.send(messageToSend);
			
			// Confirmer l'envoi dans le canal
			const recipientText = mentionnedUser ? ` à ${mentionnedUser.username}` : 'en message privé';
			await interaction.reply({ 
				content: `✅ Les instructions pour transférer une sauvegarde ${type} ont été envoyées${recipientText} !`, 
				flags: MessageFlags.Ephemeral 
			});

		} catch (error) {
			console.error('Erreur lors de l\'envoi du message privé:', error);
			const userText = mentionnedUser ? `de ${mentionnedUser.username}` : 'vos';
			await interaction.reply({ 
				content: `❌ Impossible d'envoyer le message privé. Vérifiez que les messages privés ${userText} sont ouverts.`, 
				flags: MessageFlags.Ephemeral 
			});
		}
	},
};
