import type { Component } from 'vue'
import {
  AppstoreOutlined,
  FileTextOutlined,
  GiftOutlined,
  IdcardOutlined,
  LogoutOutlined,
  SafetyCertificateOutlined,
  SettingOutlined,
  ShoppingCartOutlined,
  ShoppingOutlined,
  TeamOutlined,
  UnorderedListOutlined,
  UserOutlined
} from '@ant-design/icons-vue'

export type ConsoleNavItem = {
  key: string
  label: string
  icon?: Component
  to: string
}

export type ConsoleNavGroup = {
  key: string
  label: string
  icon?: Component
  iconColor?: string
  badge?: string
  disabled?: boolean
  children: ConsoleNavItem[]
}

export type ConsoleNavLink = Omit<ConsoleNavGroup, 'children'> & {
  to: string
}

export type ConsoleNavEntry = ConsoleNavGroup | ConsoleNavLink

export const consoleNav: ConsoleNavEntry[] = [
  {
    key: 'console-tenant',
    label: '管理中心',
    icon: AppstoreOutlined,
    to: '/console'
  },
  {
    key: 'console-orders',
    label: '我的订单',
    icon: ShoppingCartOutlined,
    children: [
      { key: 'console-orders-orders', label: '订单管理', icon: UnorderedListOutlined, to: '/console/orders' },
      { key: 'console-orders-invoices', label: '发票记录', icon: FileTextOutlined, to: '/console/invoices' },
      { key: 'console-orders-products', label: '已购产品', icon: ShoppingOutlined, to: '/console/products' },
      { key: 'console-orders-coupons', label: '优惠券', icon: GiftOutlined, to: '/console/coupons' }
    ]
  },
  {
    key: 'console-account',
    label: '账号设置',
    icon: SettingOutlined,
    children: [
      { key: 'console-account-info', label: '账号信息', icon: UserOutlined, to: '/console/account' },
      // { key: 'console-account-members', label: '成员管理', icon: TeamOutlined, to: '/console/account/members' },
      { key: 'console-account-security', label: '账号安全', icon: SafetyCertificateOutlined, to: '/console/account/security' },
      { key: 'console-account-kyc', label: '实名认证', icon: IdcardOutlined, to: '/console/account/kyc' },
      { key: 'console-account-logout', label: '退出登录', icon: LogoutOutlined, to: '/console/logout' }
    ]
  }
]
