import { PANEL_SETTING } from "@/config/panelSetting";
import { Database, Package, Settings, Users } from "lucide-react"

export type PanelTemplate = "general" | "prop_firms"

export interface MenuChild {
    id: string;
    title: string;
    href: string;
    visibleFor: PanelTemplate[];
}

export interface MenuItem {
    id: string;
    title: string;
    icon: React.ElementType;
    visibleFor?: PanelTemplate[];
    children: MenuChild[];
}

export const template = (PANEL_SETTING.template) as PanelTemplate;

export const SIDEBAR_ITEMS: MenuItem[] = [
    {
        id: "databank",
        title: "بانک داده ها",
        icon: Database,
        visibleFor: ["general", "prop_firms"],
        children: [
            {
                id: "general",
                title: "اسناد عمومی",
                href: "/dashboard/databank/general",
                visibleFor: ["general", "prop_firms"]
            },
            {
                id: "frims",
                title: "پراپ فرم ها",
                href: "/dashboard/databank/frims",
                visibleFor: ["prop_firms"]
            },
            {
                id: "prompts",
                title: "پرامپت و ثابت ها",
                href: "/dashboard/databank/prompts",
                visibleFor: ["general", "prop_firms"]
            },
            {
                id: "sync",
                title: "همگام سازی",
                href: "/dashboard/databank/sync",
                visibleFor: ["general", "prop_firms"]
            },
        ]
    },
    {
        id: "users",
        title: "مدیریت کاربران",
        icon: Users,
        visibleFor: ["prop_firms", "general"],
        children: [
            {
                id: "usersList",
                title: "لیست کاربران",
                href: "/dashboard/users",
                visibleFor: ["prop_firms", "general"]
            },
            {
                id: "transactions",
                title: "تراکنش ها",
                href: "/dashboard/users/transactions",
                visibleFor: ["prop_firms", "general"]
            },
       
            {
                id: "tickets",
                title: "تیکت ها",
                href: "/dashboard/users/ticket",
                visibleFor: ["prop_firms", "general"]
            },
        ]
    },
    {
        id: "shop",
        title: "فروشگاه",
        icon: Package,
        visibleFor: ["prop_firms"],
        children: [
            {
                id: "products",
                title: "محصولات",
                href: "/dashboard/shop/products",
                visibleFor: ["prop_firms"]
            },
            {
                id: "userProducts",
                title: "خریدهای کاربران",
                href: "/dashboard/shop/user-products",
                visibleFor: ["prop_firms"]
            },
            {
                id: "wallets",
                title: "ولت ها",
                href: "/dashboard/shop/wallets",
                visibleFor: ["prop_firms"]
            },
        ]
    },
    {
        id: "settings",
        title: "تنظیمات",
        icon: Settings,
        visibleFor: ["prop_firms", "general"],
        children: [
            {
                id: "general",
                title: "تنظیمات ربات",
                href: "/dashboard/settings",
                visibleFor: ["prop_firms", "general"]
            },

        ]
    }
]

export function getFilteredSidebarItems(panelTemplate: PanelTemplate) {
    return SIDEBAR_ITEMS
        .filter(item => item.visibleFor?.includes(panelTemplate))
        .map(group => ({
            ...group,
            children: group.children.filter(item =>
                item.visibleFor.includes(panelTemplate)
            )
        }))
        .filter(group => group.children.length > 0)
}
