import request, { withSignal } from './request' import type { Provider, ProviderKey, PaginatedResponse } from '@/types' export const providerService = { list: (params?: Record, signal?: AbortSignal) => request.get>('/providers', withSignal({ params }, signal)).then((r) => r.data), create: (data: Partial>, signal?: AbortSignal) => request.post('/providers', data, withSignal({}, signal)).then((r) => r.data), update: (id: string, data: Partial>, signal?: AbortSignal) => request.patch(`/providers/${id}`, data, withSignal({}, signal)).then((r) => r.data), delete: (id: string, signal?: AbortSignal) => request.delete(`/providers/${id}`, withSignal({}, signal)).then((r) => r.data), listKeys: (providerId: string, signal?: AbortSignal) => request.get(`/providers/${providerId}/keys`, withSignal({}, signal)).then((r) => r.data), addKey: (providerId: string, data: { key_label: string; key_value: string; priority?: number max_rpm?: number; max_tpm?: number; quota_reset_interval?: string }, signal?: AbortSignal) => request.post<{ ok: boolean; key_id: string }>(`/providers/${providerId}/keys`, data, withSignal({}, signal)).then((r) => r.data), toggleKey: (providerId: string, keyId: string, active: boolean, signal?: AbortSignal) => request.put<{ ok: boolean }>(`/providers/${providerId}/keys/${keyId}/toggle`, { active }, withSignal({}, signal)).then((r) => r.data), deleteKey: (providerId: string, keyId: string, signal?: AbortSignal) => request.delete<{ ok: boolean }>(`/providers/${providerId}/keys/${keyId}`, withSignal({}, signal)).then((r) => r.data), }