import { MenuCategory } from '@/common/app/contants'

export {}

declare global {
  namespace MenuTypes {
    // 菜单
    interface SysMenu extends G.TreeNode {
      // Id
      id: string
      sn?: string
      // 上级 Id; 层级为 1 的节点值为 0
      pid: string
      // 菜单名称
      title: string
      // 图标
      icon?: string
      // 层级; >= 1
      tier: number
      // 排序
      sort: number
      // 路由名称
      routeName: string
      // 面包路径
      breadcrumb: string[]
      menuCategory: MenuCategory
      children?: SysMenu[]
    }

    type SearchForm = Partial<Pick<SysMenu, 'title' | 'routeName' | 'pid'>>
    type MenuForm = Pick<SysMenu, 'pid' | 'menuCategory' | 'title' | 'sort' | 'routeName' | 'sn' | 'icon'>
    type AddForm = Pick<SysMenu, 'pid' | 'menuCategory' | 'title' | 'sort' | 'routeName' | 'sn'>
    type ModifyForm = Pick<SysMenu, 'id' | 'pid' | 'menuCategory' | 'title' | 'sort' | 'routeName'>
  }
}

