import request from '@/utils/request'

/**
 * 获取组织列表
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getOrganizationList(params) {
  return request({
    url: '/organizations',
    method: 'get',
    params
  })
}

/**
 * 获取组织树形结构
 * @returns {Promise}
 */
export function getOrganizationTree() {
  return request({
    url: '/organizations/tree',
    method: 'get'
  })
}

/**
 * 获取组织详情
 * @param {string|number} id 组织ID
 * @returns {Promise}
 */
export function getOrganizationById(id) {
  return request({
    url: `/organizations/${id}`,
    method: 'get'
  })
}

/**
 * 创建组织
 * @param {Object} data 组织数据
 * @returns {Promise}
 */
export function createOrganization(data) {
  return request({
    url: '/organizations',
    method: 'post',
    data
  })
}

/**
 * 更新组织
 * @param {string|number} id 组织ID
 * @param {Object} data 组织数据
 * @returns {Promise}
 */
export function updateOrganization(id, data) {
  return request({
    url: `/organizations/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除组织
 * @param {string|number} id 组织ID
 * @returns {Promise}
 */
export function deleteOrganization(id) {
  return request({
    url: `/organizations/${id}`,
    method: 'delete'
  })
}

/**
 * 获取组织下的用户
 * @param {string|number} id 组织ID
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getOrganizationUsers(id, params) {
  return request({
    url: `/organizations/${id}/users`,
    method: 'get',
    params
  })
}

/**
 * 移动组织
 * @param {string|number} id 组织ID
 * @param {string|number} parentId 新父组织ID
 * @returns {Promise}
 */
export function moveOrganization(id, parentId) {
  return request({
    url: `/organizations/${id}/move`,
    method: 'put',
    data: { parentId }
  })
}