import type { AxiosRequestConfig } from 'axios' import api from './index' /** 通用管理请求:目标标识 + 管理动作 + 透传参数,与后端 ManageRequest 一致。 */ export interface ManageRequest { target: string action: string params?: Record } /** * 调用统一管理端点(通知渠道 / 网盘存储 / LLM 提供商) * * 端点层不定义任何目标特定的名称与参数, * 目标标识、管理动作与表单参数原样透传给后端模块 */ function manageTarget>( endpoint: 'notification/manage' | 'storage/manage' | 'llm/manage', request: ManageRequest, config?: AxiosRequestConfig, ): Promise { return api.post(endpoint, { params: {}, ...request }, config) } /** 对指定通知渠道执行管理动作,返回响应中的业务数据。 */ export function manageNotificationChannel>( channel: string, action: string, params: Record = {}, config?: AxiosRequestConfig, ): Promise { return manageTarget('notification/manage', { target: channel, action, params }, config) } /** 对指定网盘存储执行管理动作,返回响应中的业务数据。 */ export function manageStorage>( storage: string, action: string, params: Record = {}, config?: AxiosRequestConfig, ): Promise { return manageTarget('storage/manage', { target: storage, action, params }, config) } /** 对指定 LLM 提供商执行管理动作,返回响应中的业务数据。 */ export function manageLlmProvider>( provider: string, action: string, params: Record = {}, config?: AxiosRequestConfig, ): Promise { return manageTarget('llm/manage', { target: provider, action, params }, config) }