import { NavGroup } from '@/types';
import {
  BellIcon,
  ChatCircleTextIcon,
  ClockCounterClockwiseIcon,
  EnvelopeSimpleIcon,
  FileIcon,
  GlobeSimpleIcon,
  HandArrowDownIcon,
  HandArrowUpIcon,
  HandDepositIcon,
  HandWithdrawIcon,
  HardDrivesIcon,
  HeadsetIcon,
  HouseIcon,
  InfoIcon,
  MegaphoneIcon,
  PaypalLogoIcon,
  RankingIcon,
  ShieldIcon,
  StackIcon,
  StorefrontIcon,
  TagIcon,
  TimerIcon,
  UserListIcon,
  UsersIcon,
  UserSwitchIcon,
} from '@phosphor-icons/react';

export const adminNavItems: NavGroup[] = [
  {
    id: 'group-dashboard',
    items: [
      {
        id: 'dashboard',
        title: 'Dashboard',
        href: '/admin/dashboard',
        icon: HouseIcon,
      },
    ],
  },

  {
    id: 'group-markets',
    title: 'Markets',
    items: [
      {
        id: 'markets-list',
        title: 'Manage Markets',
        href: '/admin/markets',
        icon: StorefrontIcon,
        permission: 'market-view',
      },
      {
        id: 'market-categories',
        title: 'Categories',
        href: '/admin/market-categories',
        icon: TagIcon,
        permission: 'market-view',
      },
      {
        id: 'market-templates',
        title: 'Templates',
        href: '/admin/market-templates',
        icon: StackIcon,
        permission: 'market-view',
      },
      {
        id: 'pending-resolution',
        title: 'Pending Resolution',
        href: '/admin/pending-resolution',
        icon: TimerIcon,
        permission: 'market-resolve',
      },
      {
        id: 'market-comments',
        title: 'Comments',
        href: '/admin/market-comments',
        icon: ChatCircleTextIcon,
        permission: 'market-view',
      },
    ],
  },

  {
    id: 'group-transactions',
    title: 'Transactions',
    items: [
      {
        id: 'tx-deposits',
        title: 'Deposits',
        href: '',
        icon: HandArrowUpIcon,
        permission: 'transaction-view',
        subMenu: [
          {
            id: 'tx-deposits-pending-manual',
            title: 'Pending (Manual)',
            href: '/admin/transactions/deposits?status=pending&method_type=manual',
          },
          {
            id: 'tx-deposits-pending-auto',
            title: 'Pending (Auto)',
            href: '/admin/transactions/deposits?status=pending&method_type=auto',
          },
          {
            id: 'tx-deposits-completed',
            title: 'Completed',
            href: '/admin/transactions/deposits?status=completed',
          },
          {
            id: 'tx-deposits-failed',
            title: 'Failed',
            href: '/admin/transactions/deposits?status=failed',
          },
          {
            id: 'tx-deposits-all',
            title: 'All Deposits',
            href: '/admin/transactions/deposits',
          },
        ],
      },
      {
        id: 'tx-withdraws',
        title: 'Withdraws',
        href: '',
        icon: HandArrowDownIcon,
        permission: 'transaction-view',
        subMenu: [
          {
            id: 'tx-withdraws-pending-manual',
            title: 'Pending (Manual)',
            href: '/admin/transactions/withdraws?status=pending&method_type=manual',
          },
          {
            id: 'tx-withdraws-pending-auto',
            title: 'Pending (Auto)',
            href: '/admin/transactions/withdraws?status=pending&method_type=auto',
          },
          {
            id: 'tx-withdraws-completed',
            title: 'Completed',
            href: '/admin/transactions/withdraws?status=completed',
          },
          {
            id: 'tx-withdraws-failed',
            title: 'Failed',
            href: '/admin/transactions/withdraws?status=failed',
          },
          {
            id: 'tx-withdraws-all',
            title: 'All Withdraws',
            href: '/admin/transactions/withdraws',
          },
        ],
      },
      {
        id: 'tx-history',
        title: 'Transaction History',
        href: '/admin/transactions/history',
        icon: ClockCounterClockwiseIcon,
        permission: 'transaction-view',
      },
    ],
  },

  {
    id: 'group-users',
    title: 'User Management',
    items: [
      {
        id: 'users',
        title: 'Users',
        href: '/admin/users',
        icon: UsersIcon,
        permission: 'user-view',
        subMenu: [
          { id: 'manage-users', title: 'Manage Users', href: '/admin/users' },
          {
            id: 'rankings',
            title: 'Manage Rankings',
            href: '/admin/rankings',
            permission: 'ranking-view',
          },
          {
            id: 'ranking-points',
            title: 'Ranking Points',
            href: '/admin/ranking-points',
            permission: 'ranking-view',
          },
        ],
      },
      {
        id: 'staff',
        title: 'Staff',
        href: '',
        icon: UserListIcon,
        permission: 'staff-view',
        subMenu: [
          { id: 'manage-staff', title: 'Manage Staff', href: '/admin/staff' },
          {
            id: 'roles',
            title: 'Manage Roles',
            href: '/admin/roles',
            permission: 'role-view',
          },
        ],
      },
      {
        id: 'kyc',
        title: 'KYC',
        href: '',
        icon: ShieldIcon,
        permission: 'kyc-view',
        subMenu: [
          {
            id: 'kyc-pending',
            title: 'Pending KYC',
            href: '/admin/kyc/pending',
          },
          {
            id: 'kyc-approved',
            title: 'Approved KYC',
            href: '/admin/kyc/approved',
          },
          {
            id: 'kyc-rejected',
            title: 'Rejected KYC',
            href: '/admin/kyc/rejected',
          },
          {
            id: 'kyc-form',
            title: 'KYC Form',
            href: '/admin/kyc-form',
            permission: 'kyc-module-view',
          },
        ],
      },
      {
        id: 'leaderboard',
        title: 'Leaderboard',
        href: '/admin/leaderboard',
        icon: RankingIcon,
        permission: 'user-view',
      },
      {
        id: 'referrals',
        title: 'Referrals',
        href: '',
        icon: UserSwitchIcon,
        permission: 'user-view',
        subMenu: [
          {
            id: 'referral-tree',
            title: 'Referral Tree',
            href: '/admin/referrals',
          },
          {
            id: 'referral-earnings',
            title: 'Referral Earnings',
            href: '/admin/referral/earnings',
          },
        ],
      },
    ],
  },

  {
    id: 'group-support',
    title: 'Customer Service',
    items: [
      {
        id: 'support-ticket',
        title: 'Support Ticket',
        href: '/admin/support-ticket',
        icon: HeadsetIcon,
        permission: 'ticket-view',
      },
      {
        id: 'send-notification',
        title: 'Send Notification',
        href: '/admin/send-notification',
        icon: BellIcon,
        permission: 'user-view',
      },
      {
        id: 'announcement',
        title: 'Announcement',
        href: '/admin/announcement',
        icon: MegaphoneIcon,
        permission: 'announcement-view',
      },
      {
        id: 'email-template',
        title: 'Email Templates',
        href: '/admin/email-templates',
        icon: EnvelopeSimpleIcon,
        permission: 'template-view',
      },
    ],
  },

  {
    id: 'group-pages',
    title: 'Page Management',
    items: [
      {
        id: 'pages',
        title: 'Manage Pages',
        href: '/admin/pages',
        icon: FileIcon,
        permission: 'page-view',
      },
    ],
  },

  {
    id: 'group-gateways',
    title: 'Gateways',
    items: [
      {
        id: 'gateways-config',
        title: 'Configure Gateways',
        href: '/admin/configure-gateways',
        icon: PaypalLogoIcon,
        permission: 'payment-gateway-view',
      },
      {
        id: 'gateways-deposit',
        title: 'Deposit Gateways',
        href: '',
        icon: HandDepositIcon,
        permission: 'payment-gateway-view',
        subMenu: [
          {
            id: 'deposit-gateway-auto',
            title: 'Automatic',
            href: '/admin/deposit-gateways/automatic',
          },
          {
            id: 'deposit-gateway-manual',
            title: 'Manual',
            href: '/admin/deposit-gateways/manual',
          },
        ],
      },
      {
        id: 'gateways-withdraw',
        title: 'Withdraw Gateways',
        href: '',
        icon: HandWithdrawIcon,
        permission: 'payment-gateway-view',
        subMenu: [
          {
            id: 'withdraw-gateway-auto',
            title: 'Automatic',
            href: '/admin/withdraw-gateways/automatic',
          },
          {
            id: 'withdraw-gateway-manual',
            title: 'Manual',
            href: '/admin/withdraw-gateways/manual',
          },
        ],
      },
    ],
  },

  {
    id: 'group-settings',
    title: 'Settings',
    items: [
      {
        id: 'site-settings',
        title: 'Site Settings',
        href: '',
        icon: GlobeSimpleIcon,
        permission: 'setting-view',
        subMenu: [
          {
            id: 'site-settings-general',
            title: 'General',
            href: '/admin/site-settings',
          },
          {
            id: 'site-settings-system',
            title: 'System Configuration',
            href: '/admin/system-configuration',
          },
          {
            id: 'site-settings-email',
            title: 'Email Settings',
            href: '/admin/email-settings',
          },
          {
            id: 'site-settings-plugins',
            title: 'Plugins Settings',
            href: '/admin/plugins',
            permission: 'plugin-view',
          },
          {
            id: 'site-settings-language',
            title: 'Language',
            href: '/admin/language',
            permission: 'translation-view',
          },
        ],
      },
      {
        id: 'cron-jobs',
        title: 'Cron Jobs',
        href: '/admin/cron-jobs',
        icon: TimerIcon,
        permission: 'cron-job-view',
      },
      {
        id: 'application-info',
        title: 'Application Info',
        href: '/admin/application-info',
        icon: InfoIcon,
        permission: 'setting-view',
      },
      {
        id: 'server-info',
        title: 'Server Info',
        href: '/admin/server-info',
        icon: HardDrivesIcon,
        permission: 'setting-view',
      },
    ],
  },
];
