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

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 {
    return {};
  }
}

module.exports = {
  data: new SlashCommandBuilder()
    .setName('blacklist')
    .setDescription('📋 عرض قائمة البلاك ليست لهذا السيرفر'),

  async execute(interaction) {
    const guildId = interaction.guild.id;
    const guildConfig = require('../config.js')[guildId];

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

    // ✅ التحقق من Owner
    const ownerList = guildConfig.ownerPartnerIDs || [];
    if (!ownerList.includes(interaction.user.id)) {
      return interaction.reply({ content: '🚫 هذا الأمر مخصص فقط للأونرز المعتمدين.', ephemeral: true });
    }

const data = safeLoadJSON(BLACKLIST_FILE) || {};
const blacklist = data.blacklist || { servers: [], users: [] };

    // تحويل IDs إلى أسماء
    const serverNames = blacklist.servers.map(sId => {
      const server = interaction.client.guilds.cache.get(sId);
      return server ? `${server.name} (${sId})` : `Unknown Server (${sId})`;
    });

    const userNames = await Promise.all(blacklist.users.map(async uId => {
      try {
        const user = await interaction.client.users.fetch(uId);
        return user ? `${user.tag} (${uId})` : `Unknown User (${uId})`;
      } catch {
        return `Unknown User (${uId})`;
      }
    }));

    const embed = new EmbedBuilder()
      .setTitle(`🛑 بلاك ليست السيرفر`)
      .setColor('Red')
      .setDescription(`• السيرفرات المحظورة: **${blacklist.servers.length}**\n• الأعضاء المحظورون: **${blacklist.users.length}**`)
      .addFields(
        { name: '🚫 السيرفرات', value: serverNames.length ? serverNames.join('\n') : 'لا يوجد', inline: false },
        { name: '🚫 الأعضاء', value: userNames.length ? userNames.join('\n') : 'لا يوجد', inline: false }
      )
      .setTimestamp();

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