import { request } from '@/plugins/http-fetch';

/**
 * 查询部门列表
 * @param query 查询参数
 * @returns object
 */
export function listTenant(query: Record<string, any>) {
  return request({
    url: '/system/tenant/list',
    method: 'get',
    params: query,
  });
}

/**
 * 查询部门列表（排除节点）
 * @param tenantId 部门ID
 * @returns object
 */
export function listTenantExcludeChild(tenantId: string | number) {
  return request({
    url: `/system/tenant/list/exclude/${tenantId}`,
    method: 'get',
  });
}

/**
 * 查询部门详细
 * @param tenantId 部门ID
 * @returns object
 */
export function getTenant(tenantId: string | number) {
  return request({
    url: `/system/tenant/${tenantId}`,
    method: 'get',
  });
}

/**
 * 新增部门
 * @param data 部门对象
 * @returns object
 */
export function addTenant(data: Record<string, any>) {
  return request({
    url: '/system/tenant',
    method: 'post',
    data: data,
  });
}

/**
 * 修改部门
 * @param data 部门对象
 * @returns object
 */
export function updateTenant(data: Record<string, any>) {
  return request({
    url: '/system/tenant',
    method: 'put',
    data: data,
  });
}

/**
 * 删除部门
 * @param TenantId 部门ID
 * @returns object
 */
export function delTenant(TenantId: string | number) {
  return request({
    url: `/system/tenant/${TenantId}`,
    method: 'delete',
  });
}

/**
 * 查询部门下拉树结构
 * @returns object
 */
export function tenantTreeSelect() {
  return request({
    url: '/system/tenant/treeSelect',
    method: 'get',
  });
}

/**
 * 部门树结构列表（指定角色）
 * @param roleId 角色ID
 * @returns object
 */
export function roleTenantTreeSelect(roleId: string | number) {
  return request({
    url: `/system/tenant/roleDeptTreeSelect/${roleId}`,
    method: 'get',
  });
}
