import request from '@/utils/request'

// ========== 新版外呼接口管理 /admin/companyVoice ==========

/** 分页查询外呼接口列表（新版） */
export function listCompanyVoiceApiV2(query) {
  return request({
    url: '/admin/companyVoice/list',
    method: 'get',
    params: query
  })
}

/** 获取外呼接口详情（新版） */
export function getCompanyVoiceApiV2(apiId) {
  return request({
    url: '/admin/companyVoice/' + apiId,
    method: 'get'
  })
}

/** 新增外呼接口（新版） */
export function addCompanyVoiceApiV2(data) {
  return request({
    url: '/admin/companyVoice',
    method: 'post',
    data: data
  })
}

/** 修改外呼接口（新版） */
export function updateCompanyVoiceApiV2(data) {
  return request({
    url: '/admin/companyVoice',
    method: 'put',
    data: data
  })
}

/** 删除外呼接口（新版，逻辑删除） */
export function delCompanyVoiceApiV2(apiId) {
  return request({
    url: '/admin/companyVoice/' + apiId,
    method: 'delete'
  })
}

// 查询呼叫接口列表（admin专用，走 /admin/ 前缀，路由到 fs-admin 8004）
export function listCompanyVoiceApi(query) {
  return request({
    url: '/admin/voice-api/list',
    method: 'get',
    params: query
  })
}
export function getVoiceApiList() {
  return request({
    url: '/admin/voice-api/list',
    method: 'get'
  })
}


// 查询呼叫接口详细
export function getCompanyVoiceApi(apiId) {
  return request({
    url: '/admin/voice-api/' + apiId,
    method: 'get'
  })
}

// 新增呼叫接口
export function addCompanyVoiceApi(data) {
  return request({
    url: '/company/companyVoiceApi',
    method: 'post',
    data: data
  })
}

// 修改呼叫接口
export function updateCompanyVoiceApi(data) {
  return request({
    url: '/company/companyVoiceApi',
    method: 'put',
    data: data
  })
}

// 删除呼叫接口
export function delCompanyVoiceApi(apiId) {
  return request({
    url: '/company/companyVoiceApi/' + apiId,
    method: 'delete'
  })
}

// 导出呼叫接口
export function exportCompanyVoiceApi(query) {
  return request({
    url: '/company/companyVoiceApi/export',
    method: 'get',
    params: query
  })
}

// ========== 通话接口-租户分配 ==========

// 查询接口已分配的租户列表
export function getAssignedTenants(apiId) {
  return request({
    url: '/admin/voice-api/tenants/' + apiId,
    method: 'get'
  })
}

// 查询租户已分配的接口列表
export function getTenantApis(tenantId) {
  return request({
    url: '/admin/voice-api/apis/' + tenantId,
    method: 'get'
  })
}

// 分配接口给租户（批量）
export function assignTenants(apiId, tenantIds, extra = {}) {
  return request({
    url: '/admin/voice-api/assignTenants',
    method: 'post',
    data: {
      apiId,
      tenantIds,
      apiName: extra.apiName,
      tenants: extra.tenants
    }
  })
}

// 取消分配
export function unassignTenant(apiId, tenantId) {
  return request({
    url: '/admin/voice-api/unassignTenant',
    method: 'delete',
    params: { apiId, tenantId }
  })
}

// 查询接口已分配租户数量
export function getTenantCount(apiId) {
  return request({
    url: '/admin/voice-api/tenantCount/' + apiId,
    method: 'get'
  })
}

// ========== 新版外呼接口-租户分配 /admin/companyVoiceApiTenant ==========

/** 分页查询租户-接口绑定列表（新版） */
export function listVoiceApiTenantV2(query) {
  return request({
    url: '/admin/companyVoiceApiTenant/list',
    method: 'get',
    params: query
  })
}

/** 外呼接口下拉列表（新版，租户绑定页用） */
export function getVoiceApiListV2() {
  return request({
    url: '/admin/companyVoiceApiTenant/apiList',
    method: 'get'
  })
}

/** 分配接口给租户（新版） */
export function assignTenantsV2(apiId, tenantIds) {
  return request({
    url: '/admin/companyVoiceApiTenant/assign',
    method: 'post',
    data: { apiId, tenantIds }
  })
}

/** 取消分配（新版） */
export function unassignTenantV2(apiId, tenantId) {
  return request({
    url: '/admin/companyVoiceApiTenant/unassign',
    method: 'delete',
    params: { apiId, tenantId }
  })
}

/** 更新租户定价（新版） */
export function updateTenantPricingV2(data) {
  return request({
    url: '/admin/companyVoiceApiTenant',
    method: 'put',
    data: data
  })
}

/** 批量更新租户定价（新版） */
export function batchUpdateTenantPricingV2(data) {
  return request({
    url: '/admin/companyVoiceApiTenant/batchPricing',
    method: 'put',
    data: data
  })
}

/** 批量更新租户状态（新版） */
export function batchUpdateTenantStatusV2(data) {
  return request({
    url: '/admin/companyVoiceApiTenant/batchStatus',
    method: 'put',
    data: data
  })
}

// ========== 租户定价管理 ==========

// 查询租户-接口定价列表（分页）
export function listVoiceApiTenant(query) {
  return request({
    url: '/admin/voice-api/tenant/list',
    method: 'get',
    params: query
  })
}

// 更新租户定价
export function updateTenantPricing(data) {
  return request({
    url: '/admin/voice-api/tenant/update',
    method: 'put',
    data: data
  })
}