import request from '@/utils/request'
import type { 
  AiConfigPageRequest, 
  AiConfigCreateRequest, 
  AiConfigUpdateRequest
} from '@/types/aiconfig'

// 分页查询AI配置
export function getAiConfigPage(params: AiConfigPageRequest) {
  return request({
    url: '/aiConfig/page',
    method: 'get',
    params
  })
}

// 根据ID获取AI配置
export function getAiConfigById(id: string) {
  return request({
    url: '/aiConfig/detail',
    method: 'get',
    params: { id }
  })
}

// 创建AI配置
export function createAiConfig(data: AiConfigCreateRequest) {
  return request({
    url: '/aiConfig/create',
    method: 'post',
    data
  })
}

// 更新AI配置
export function updateAiConfig(data: AiConfigUpdateRequest) {
  return request({
    url: '/aiConfig/update',
    method: 'put',
    data
  })
}

// 删除AI配置
export function deleteAiConfig(id: string) {
  return request({
    url: '/aiConfig/delete',
    method: 'delete',
    params: { id }
  })
}

// 根据配置类型查询AI配置
export function getAiConfigByType(configType: string) {
  return request({
    url: '/aiConfig/byConfigType',
    method: 'get',
    params: { configType }
  })
}

// 根据服务提供商查询AI配置
export function getAiConfigByProvider(provider: string) {
  return request({
    url: '/aiConfig/byProvider',
    method: 'get',
    params: { provider }
  })
}

// 根据使用场景查询AI配置
export function getAiConfigByUsageScenario(usageScenario: string) {
  return request({
    url: '/aiConfig/byUsageScenario',
    method: 'get',
    params: { usageScenario }
  })
}

// 根据环境查询AI配置
export function getAiConfigByEnvironment(environment: string) {
  return request({
    url: '/aiConfig/byEnvironment',
    method: 'get',
    params: { environment }
  })
}

// 查询已启用的AI配置
export function getEnabledAiConfigs() {
  return request({
    url: '/aiConfig/enabled',
    method: 'get'
  })
}

// 查询已禁用的AI配置
export function getDisabledAiConfigs() {
  return request({
    url: '/aiConfig/disabled',
    method: 'get'
  })
}

// 查询默认配置
export function getDefaultAiConfigs() {
  return request({
    url: '/aiConfig/default',
    method: 'get'
  })
}

// 根据配置键值查询AI配置
export function getAiConfigByKey(configKey: string) {
  return request({
    url: '/aiConfig/byConfigKey',
    method: 'get',
    params: { configKey }
  })
}

// 启用AI配置
export function enableAiConfig(id: string) {
  return request({
    url: '/aiConfig/enable',
    method: 'put',
    params: { id }
  })
}

// 禁用AI配置
export function disableAiConfig(id: string) {
  return request({
    url: '/aiConfig/disable',
    method: 'put',
    params: { id }
  })
}

// 设置为默认配置
export function setAsDefaultConfig(id: string) {
  return request({
    url: '/aiConfig/setDefault',
    method: 'put',
    params: { id }
  })
}

// 取消默认配置
export function unsetDefaultConfig(id: string) {
  return request({
    url: '/aiConfig/unsetDefault',
    method: 'put',
    params: { id }
  })
}

// 查询最优配置
export function getBestAiConfig(usageScenario: string, environment: string) {
  return request({
    url: '/aiConfig/bestConfig',
    method: 'get',
    params: { usageScenario, environment }
  })
}

// 统计已启用配置数量
export function countEnabledConfigs() {
  return request({
    url: '/aiConfig/countEnabled',
    method: 'get'
  })
}

// 统计已禁用配置数量
export function countDisabledConfigs() {
  return request({
    url: '/aiConfig/countDisabled',
    method: 'get'
  })
}

// 统计默认配置数量
export function countDefaultConfigs() {
  return request({
    url: '/aiConfig/countDefault',
    method: 'get'
  })
}

// 根据配置类型统计数量
export function countByConfigType(configType: string) {
  return request({
    url: '/aiConfig/countByConfigType',
    method: 'get',
    params: { configType }
  })
}

// 根据服务提供商统计数量
export function countByProvider(provider: string) {
  return request({
    url: '/aiConfig/countByProvider',
    method: 'get',
    params: { provider }
  })
}


// 测试后更新AI配置
export function updateAiConfigFromTest(data: any) {
  return request({
    url: '/aiConfig/updateFromTest',
    method: 'put',
    data
  })
}
