import{ PERM_DATA, PERM_ALGO, PERM_NOTICE, PERM_USER, PERM_DEVICE} from './constants';

/**
 * 权限项 详细信息
 */
export interface PermissionItem {
  // 权限ID
  id: number | null;
  // 上级ID
  parentId: number | null;
  // 权限编码
  permissionCode: string;
  // 权限名字
  permissionName: string;
  // 排序
  orderNum: number;
  // 是否删除  
  isDeleted?: number;
  // 创建日期
  createdAt?: string;
  // 创建人
  createdBy?: string;
  // 更新日期
  updatedAt?: string;
  // 更新人
  updatedBy?: string;
}

// 权限是可以嵌套的
export type Permission = PermissionItem & { children?: PermissionItem[] | null };
// 权限树
export type PermissionTree = Permission[];

/**
 * 权限显示项目，用于生成 el-tree
 */
export type PermissionTreeKey = number | string;

export interface PermissionViewItem {
  label: string;
  value: PermissionTreeKey;
}

export type PermissionView = PermissionViewItem & { children?: PermissionViewItem[] | null };
export type PermissionViewTree = PermissionView[];


export type PERM = PERM_DEVICE | PERM_ALGO | PERM_DATA | PERM_NOTICE | PERM_USER;