import { request } from '@/utils/request'
import { Function } from '@/enums/api'
import {
  BaseResParams,
  FuncListResParams,
  AddFuncResParams
} from '@/types/function'

/**
 * 获取功能项列表
 * @param moduleId 功能模块id
 */
export const getFuncList = (moduleId: number) => {
  return request.post<FuncListResParams>({
    url: Function.SYSTEM_FUNC_LIST,
    data: { module_id: moduleId }
  })
}

/**
 * 在选中功能模块下添加功能项
 * @param moduleId 选中模块id
 * @param name 功能项名称
 * @param tag  功能项标记
 * @param checkAuth 是否鉴权
 */
export const addFunc = (
  moduleId: number,
  name: string,
  tag: string,
  checkAuth: boolean
) => {
  return request.post<AddFuncResParams>({
    url: Function.SYSTEM_FUNC_ADD,
    data: { module_id: moduleId, name, tag, check_auth: checkAuth }
  })
}

/**
 * 修改当前功能项
 * @param funcId 选中功能项id
 * @param name 功能项名称
 * @param checkAuth 是否鉴权
 */
export const modifyFunc = (
  funcId: number,
  name?: string,
  checkAuth?: boolean
) => {
  return request.post<BaseResParams>({
    url: Function.SYSTEM_FUNC_MODIFY,
    data: { id: funcId, name, check_auth: checkAuth }
  })
}

/**
 * 删除功能项
 * @param funcId 选中功能项id
 */
export const removeFunc = (funcId: number) => {
  return request.post<BaseResParams>({
    url: Function.SYSTEM_FUNC_REMOVE,
    data: { id: funcId }
  })
}
