import { http } from '@/utils/http/axios';

export interface Role {
  roleId: number;
  roleName: string;
}

export interface RoleList {
  map(arg0: (item: any) => { value: any; label: any }): never[];
  list?: Role[];
}

export interface Department {
  deptId: number;
  createDate: string;
  modifyDate: string;
  deptName: string;
  treePath: string;
  grade: number;
  parent: number;
  orderNum: number | null;
  isEnable: boolean;
}

/* V4: 部门树结构 */
export interface DeptTreeItem {
  id: number;
  deptName: string; // 部门名称
  parentId: number; // 上级部门 id
  orderNum: number; // 排序
  isDisabled: number; // 状态： 0-启用， 1-禁用
  createdBy: number; // 创建人
  updatedBy: number; // 更新人
  createdAt: string; // 创建时间
  updatedAt: string; // 更新时间
  isDeleted: number; // 0-未删除。 大于 0-已删除
  tenantId: number; // 租户 ID
}
type DeptTree = DeptTreeItem & { children: DeptTreeItem[] };

// v4: 获取所有组织
export function getAllDepartments(): Promise<DeptTree[]> {
  return http.request({
    url: '/admin/dept/queryAllDeptTree',
    method: 'post',
  });
}
