import {mainNavItem} from '@admin/types';
import {
    Activity,
    Database,
    FileSliders,
    FileText,
    Home,
    Languages,
    Mail,
    Settings,
    ShieldEllipsis,
    User,
    Component,
    Code,
    Laptop,
    BookOpen,
    LayoutTemplate,
    Palette,
    Gem,
    CreditCard,
} from 'lucide-react';

// Permission helper is globally injected; declare for TS
declare function can(permission: string): number;
declare function tenantAccess(searchFrom: string,slug: string): string;

declare function __(key: string): string;

interface UserRole {
    id: number;
    name: string;
    slug: string;
}

function hasDevRole(userRoles: UserRole[]): boolean {
    return userRoles.some((role: UserRole) => role.slug === 'dev');
}

// Helper function to check if user has admin or super-admin role
function hasAdminRole(userRoles: UserRole[]): boolean {
    const allowedRoles = ['admin', 'super-admin'];
    return userRoles.some((role: UserRole) => allowedRoles.includes(role.slug));
}


export const paymentMenuItems = (userRoles: UserRole[] = []): mainNavItem[] => {
    let items: mainNavItem[] = [
    ];

    // Conditionally add Backup menu if user has admin or super-admin role
    if (hasAdminRole(userRoles)) {
         items.push({
            title: 'Billing',
            icon: CreditCard,
            url: "#",
            isActive: false,
        });
        items.push({
            title: 'Subscription',
            icon: Gem,
            url: "#",
            isActive: false,
        });
    }
    return items;
};
