import type { PageParam, PageResult } from '@vben/request';

import { requestClient } from '#/api/request';

export namespace AiModelApiKeyApi {
  export interface ApiKey {
    id: number; // 编号
    name: string; // 名称
    apiKey: string; // 密钥
    platform: string; // 平台
    url: string; // 自定义 API 地址
    status: number; // 状态
  }
}

/** 查询 API 密钥分页 */
export function getApiKeyPage(params: PageParam) {
  return requestClient.get<PageResult<AiModelApiKeyApi.ApiKey>>(
    '/ai/api-key/page',
    { params },
  );
}

/** 获得 API 密钥列表 */
export function getApiKeySimpleList() {
  return requestClient.get<AiModelApiKeyApi.ApiKey[]>(
    '/ai/api-key/simple-list',
  );
}

/** 查询 API 密钥详情 */
export function getApiKey(id: number) {
  return requestClient.get<AiModelApiKeyApi.ApiKey>(`/ai/api-key/get?id=${id}`);
}

/** 新增 API 密钥 */
export function createApiKey(data: AiModelApiKeyApi.ApiKey) {
  return requestClient.post('/ai/api-key/create', data);
}

/** 修改 API 密钥 */
export function updateApiKey(data: AiModelApiKeyApi.ApiKey) {
  return requestClient.put('/ai/api-key/update', data);
}

/** 删除 API 密钥 */
export function deleteApiKey(id: number) {
  return requestClient.delete(`/ai/api-key/delete?id=${id}`);
}

/** 下载 API 密钥导入模板 */
export function importApiKeyTemplate() {
  return requestClient.download('/ai/api-key/get-import-template');
}

/** 导入 API 密钥 */
export function importApiKey(file: File, updateSupport: boolean) {
  return requestClient.upload('/ai/api-key/import', {
    file,
    updateSupport,
  });
}
