import request from '@/utils/http'

/**
 * 部门API
 */
export default {
  /**
   * 获取数据列表
   * @param params 搜索参数
   * @returns 数据列表
   */
  list(params: Record<string, any>) {
    return request.get<Api.Common.ApiData[]>({
      url: '/core/dept/index',
      params
    })
  },

  /**
   * 读取数据
   * @param id 数据ID
   * @returns 数据详情
   */
  read(id: number | string) {
    return request.get<Api.Common.ApiData>({
      url: '/core/dept/read?id=' + id
    })
  },

  /**
   * 创建数据
   * @param params 数据参数
   * @returns 执行结果
   */
  save(params: Record<string, any>) {
    return request.post<any>({
      url: '/core/dept/save',
      data: params
    })
  },

  /**
   * 更新数据
   * @param params 数据参数
   * @returns 执行结果
   */
  update(params: Record<string, any>) {
    return request.put<any>({
      url: '/core/dept/update',
      data: params
    })
  },

  /**
   * 删除数据
   * @param id 数据ID
   * @returns 执行结果
   */
  delete(params: Record<string, any>) {
    return request.del<any>({
      url: '/core/dept/destroy',
      data: params,
      showErrorMessage: false
    })
  },

  /**
   * 可操作部门
   * @returns 数据列表
   */
  accessDept() {
    return request.get<Api.Common.ApiData[]>({
      url: '/core/dept/accessDept'
    })
  },

  destroyPreview(ids: string | number | Array<string | number>) {
    const idStr = Array.isArray(ids) ? ids.join(',') : String(ids)
    return request.get<Api.Common.ApiData>({
      url: '/core/dept/destroyPreview',
      params: { ids: idStr }
    })
  },

  syncChannelConfigs() {
    return request.post<any>({
      url: '/core/dept/syncChannelConfigs'
    })
  }
}
