import { request } from '@/utils/request'
import { Domain } from '@/enums/api'
import { DomainTreeResParams, AddDomainResParams } from '@/types/domain'

/**
 * 获取功能项列表
 * @param pid 有此参数，只取此父域下的域树，否则获取自己权限下的域树。
 */
export const getDomainTree = (pid?: number) => {
  return request.post<DomainTreeResParams>({
    url: Domain.SYSTEM_DOMAIN_TREE,
    data: { pid }
  })
}

/**
 * 添加域
 * @param pid 父级域
 * @param name 域名
 * @param desc 域描述
 */
export const addDomain = (pid: number, name: string, desc?: string) => {
  return request.post<AddDomainResParams>({
    url: Domain.SYSTEM_DOMAIN_ADD,
    data: { pid, name, desc }
  })
}
/**
 * 修改域
 * @param domainId 当前选中域。id不可修改
 * @param name 域名 可修改
 * @param memo 域描述
 */
export const modifyDomain = (
  domainId: number,
  name?: string,
  memo?: string
) => {
  return request.post<BaseResParams>({
    url: Domain.SYSTEM_DOMAIN_MODIFY,
    data: { id: domainId, name, memo }
  })
}

/**
 * 删除域
 * @param domainId 当前选中域
 */
export const removeDomain = (domainId: number) => {
  return request.post<BaseResParams>({
    url: Domain.SYSTEM_DOMAIN_REMOVE,
    data: { id: domainId }
  })
}
