import request from '@/utils/request'

/**
 * 获取角色列表
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getRoleList(params) {
  return request({
    url: '/roles',
    method: 'get',
    params
  })
}

/**
 * 获取角色详情
 * @param {string|number} id 角色ID
 * @returns {Promise}
 */
export function getRoleById(id) {
  return request({
    url: `/roles/${id}`,
    method: 'get'
  })
}

/**
 * 创建角色
 * @param {Object} data 角色数据
 * @returns {Promise}
 */
export function createRole(data) {
  return request({
    url: '/roles',
    method: 'post',
    data
  })
}

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

/**
 * 删除角色
 * @param {string|number} id 角色ID
 * @returns {Promise}
 */
export function deleteRole(id) {
  return request({
    url: `/roles/${id}`,
    method: 'delete'
  })
}

/**
 * 批量删除角色
 * @param {Array} ids 角色ID数组
 * @returns {Promise}
 */
export function batchDeleteRoles(ids) {
  return request({
    url: '/roles/batch',
    method: 'delete',
    data: { ids }
  })
}

/**
 * 获取角色权限
 * @param {string|number} id 角色ID
 * @returns {Promise}
 */
export function getRolePermissions(id) {
  return request({
    url: `/roles/${id}/permissions`,
    method: 'get'
  })
}

/**
 * 设置角色权限
 * @param {string|number} id 角色ID
 * @param {Array} permissions 权限ID数组
 * @returns {Promise}
 */
export function setRolePermissions(id, permissions) {
  return request({
    url: `/roles/${id}/permissions`,
    method: 'put',
    data: { permissions }
  })
}