import request, { withSignal } from './request' import type { PromptTemplate, PromptVersion, PaginatedResponse } from '@/types' export const promptService = { list: (params?: Record, signal?: AbortSignal) => request.get>('/prompts', withSignal({ params }, signal)).then((r) => r.data), get: (name: string, signal?: AbortSignal) => request.get(`/prompts/${encodeURIComponent(name)}`, withSignal({}, signal)).then((r) => r.data), create: (data: { name: string; category: string; description?: string; source?: string system_prompt: string; user_prompt_template?: string variables?: unknown[]; min_app_version?: string }, signal?: AbortSignal) => request.post('/prompts', data, withSignal({}, signal)).then((r) => r.data), update: (name: string, data: { description?: string; status?: string }, signal?: AbortSignal) => request.put(`/prompts/${encodeURIComponent(name)}`, data, withSignal({}, signal)).then((r) => r.data), archive: (name: string, signal?: AbortSignal) => request.delete(`/prompts/${encodeURIComponent(name)}`, withSignal({}, signal)).then((r) => r.data), listVersions: (name: string, signal?: AbortSignal) => request.get(`/prompts/${encodeURIComponent(name)}/versions`, withSignal({}, signal)).then((r) => r.data), createVersion: (name: string, data: { system_prompt: string; user_prompt_template?: string variables?: unknown[]; changelog?: string; min_app_version?: string }, signal?: AbortSignal) => request.post(`/prompts/${encodeURIComponent(name)}/versions`, data, withSignal({}, signal)).then((r) => r.data), rollback: (name: string, version: number, signal?: AbortSignal) => request.post(`/prompts/${encodeURIComponent(name)}/rollback/${version}`, undefined, withSignal({}, signal)).then((r) => r.data), }