import { QuickDB } from "quick.db";
import { EmbedBuilder } from "discord.js";

const db = new QuickDB();

export default {
  name: "leaderboard",
  description: "عرض أفضل 10 أعضاء حسب النقاط",
  async execute(message) {
    const all = await db.all();
    const guildPrefix = `points_${message.guild.id}_`;
    const items = all
      .filter(e => e.id.startsWith(guildPrefix))
      .map(e => ({
        id: e.id.replace(guildPrefix, ""),
        points: Number(e.value || 0)
      }))
      .sort((a, b) => b.points - a.points)
      .slice(0, 10);

    if (!items.length)
      return message.reply("لا يوجد نقاط مسجلة في هذا السيرفر.");

    // 🏆 إعداد النصوص
    const lines = items
      .map((it, i) => {
        let medal = "🏅";
        if (i === 0) medal = "🥇";
        else if (i === 1) medal = "🥈";
        else if (i === 2) medal = "🥉";
        return `${medal} **#${i + 1}** — <@${it.id}> • **${it.points}** نقطة`;
      })
      .join("\n");

    // 📊 إنشاء الـ Embed
    const embed = new EmbedBuilder()
      .setTitle("🏆 لوحة الشرف — أعلى 10 لاعبين بالنقاط")
      .setDescription(lines)
      .setColor("#FFD700")
      .setThumbnail(message.guild.iconURL({ dynamic: true }))
      .setFooter({
        text: `السيرفر: ${message.guild.name}`,
        iconURL: message.guild.iconURL({ dynamic: true })
      })
      .setTimestamp();

    await message.channel.send({ embeds: [embed] });
  }
};
