import request from '@/utils/request'

// 查询sip自动外呼屏蔽规则列表
export function listRules(query) {
  return request({
    url: '/aiSipCall/rules/list',
    method: 'get',
    params: query
  })
}

// 查询sip自动外呼屏蔽规则详细
export function getRules(id) {
  return request({
    url: '/aiSipCall/rules/' + encodeURIComponent(id),
    method: 'get'
  })
}

// 新增sip自动外呼屏蔽规则
export function addRules(data) {
  return request({
    url: '/aiSipCall/rules',
    method: 'post',
    data: data
  })
}

// 修改sip自动外呼屏蔽规则
export function updateRules(data) {
  return request({
    url: '/aiSipCall/rules',
    method: 'put',
    data: data
  })
}

// 删除sip自动外呼屏蔽规则
export function delRules(id) {
  return request({
    url: '/aiSipCall/rules/' + id,
    method: 'delete'
  })
}

// 导出sip自动外呼屏蔽规则
export function exportRules(query) {
  return request({
    url: '/aiSipCall/rules/export',
    method: 'get',
    params: query
  })
}
// 校验所选批次任务是否存在重复
// batchIds: 批次任务ID列表；
// excludeId: 修改时排除当前规则ID
export function checkBatchIds(batchIds, excludeId) {
  const params = {}
  // excludeId 为 0 时也必须传递（兜底规则）
  if (excludeId !== undefined && excludeId !== null && excludeId !== '') {
    params.excludeId = excludeId
  }
  return request({
    url: '/aiSipCall/rules/checkBatchIds',
    method: 'post',
    data: batchIds,
    params
  })
}

// 立即执行规则（全量同步，不依赖筛选条件）
export function syncRule() {
  return request({
    url: '/aiSipCall/rules/syncRule',
    method: 'get'
  })
}
