const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
const fs = require('fs');
const path = require('path');
const config = require('../config.js');

const BLACKLIST_FILE = path.join(__dirname, '../blacklist.json');

function safeLoadJSON(file) {
  try {
    if (!fs.existsSync(file)) return {};
    const raw = fs.readFileSync(file, 'utf8');
    return JSON.parse(raw || '{}');
  } catch (err) {
    console.error(`❌ JSON Load Error:`, err);
    return {};
  }
}

function safeSaveJSON(file, data) {
  try {
    fs.writeFileSync(file, JSON.stringify(data, null, 2), 'utf8');
  } catch (err) {
    console.error(`❌ JSON Save Error:`, err);
  }
}

module.exports = {
  data: new SlashCommandBuilder()
    .setName('addblacklist')
    .setDescription('➕ إضافة عضو أو سيرفر إلى البلاك ليست')
    .addStringOption(o => o.setName('type').setDescription('User / Server').setRequired(true)
      .addChoices({ name: 'Server', value: 'servers' }, { name: 'User', value: 'users' }))
    .addStringOption(o => o.setName('id').setDescription('ID المراد إضافته').setRequired(true)),

  async execute(interaction) {
    try {
      const guildId = interaction.guild.id;
      const guildConfig = config[guildId];

      if (!guildConfig) return interaction.reply({ content: '⚠ إعدادات السيرفر غير موجودة.', ephemeral: true });

const ownerList = guildConfig.ownerPartnerIDs || [];

if (!ownerList.includes(interaction.user.id)) {
  return interaction.reply({
    content: "🚫 هذا الأمر مخصص فقط للأونرز المعتمدين.",
    ephemeral: true
  });
}

      const type = interaction.options.getString('type');
      const id = interaction.options.getString('id').trim();

      if (!/^\d{6,30}$/.test(id))
        return interaction.reply({ content: '⚠ ID غير صالح', ephemeral: true });

const blacklistData = safeLoadJSON(BLACKLIST_FILE);

// لو المفتاح مش موجود، ضيفه
if (!blacklistData.blacklist) blacklistData.blacklist = { servers: [], users: [] };

// تأكد من المصفوفات
if (!Array.isArray(blacklistData.blacklist.servers)) blacklistData.blacklist.servers = [];
if (!Array.isArray(blacklistData.blacklist.users)) blacklistData.blacklist.users = [];

// الفحص والإضافة
if (blacklistData.blacklist[type].includes(id))
  return interaction.reply({ content: `⚠ ${id} موجود بالفعل في القائمة`, ephemeral: true });

blacklistData.blacklist[type].push(id);

// الحفظ
safeSaveJSON(BLACKLIST_FILE, blacklistData);

      const embed = new EmbedBuilder()
        .setTitle(`🛡 Blacklist Updated`)
        .setDescription(`تم إضافة \`${id}\` إلى قائمة **${type}** بنجاح.`)
        .setColor('#ff0000')
        .setTimestamp();

      await interaction.reply({ embeds: [embed], ephemeral: true });

    } catch (err) {
      console.error('AddBlacklist error:', err);
      if (!interaction.replied) interaction.reply({ content: '❌ حدث خطأ غير متوقع', ephemeral: true });
    }
  }
};
