import client from '../client'; // === Types === export interface KnowledgeReference { id: string; tenant_id: string; title: string; analysis_type: string; source_name: string; content_summary: string; tags: Record | null; is_enabled: boolean; created_at: string; updated_at: string; } export interface KnowledgeGuide { id: string; tenant_id: string; title: string; analysis_type: string; content: string; category: string | null; is_enabled: boolean; created_at: string; updated_at: string; } export interface CreateReferenceReq { title: string; analysis_type: string; source_name: string; content_summary: string; tags?: Record; is_enabled?: boolean; } export interface UpdateReferenceReq { title?: string; analysis_type?: string; source_name?: string; content_summary?: string; tags?: Record; is_enabled?: boolean; } export interface CreateGuideReq { title: string; analysis_type: string; content: string; category?: string; is_enabled?: boolean; } export interface UpdateGuideReq { title?: string; analysis_type?: string; content?: string; category?: string; is_enabled?: boolean; } // === API === export const knowledgeApi = { // References listReferences: async (params?: { analysis_type?: string }) => { const resp = await client.get('/ai/knowledge/references', { params }); return resp.data.data as { data: KnowledgeReference[]; total: number }; }, createReference: async (data: CreateReferenceReq) => { const resp = await client.post('/ai/knowledge/references', data); return resp.data.data as { id: string }; }, updateReference: async (id: string, data: UpdateReferenceReq) => { const resp = await client.put(`/ai/knowledge/references/${id}`, data); return resp.data.data as { id: string }; }, deleteReference: async (id: string) => { const resp = await client.delete(`/ai/knowledge/references/${id}`); return resp.data.data as { id: string }; }, reEmbedReference: async (id: string) => { const resp = await client.post(`/ai/knowledge/references/${id}/re-embed`); return resp.data.data as { id: string }; }, // Guides listGuides: async (params?: { analysis_type?: string }) => { const resp = await client.get('/ai/knowledge/guides', { params }); return resp.data.data as { data: KnowledgeGuide[]; total: number }; }, createGuide: async (data: CreateGuideReq) => { const resp = await client.post('/ai/knowledge/guides', data); return resp.data.data as { id: string }; }, updateGuide: async (id: string, data: UpdateGuideReq) => { const resp = await client.put(`/ai/knowledge/guides/${id}`, data); return resp.data.data as { id: string }; }, deleteGuide: async (id: string) => { const resp = await client.delete(`/ai/knowledge/guides/${id}`); return resp.data.data as { id: string }; }, reEmbedGuide: async (id: string) => { const resp = await client.post(`/ai/knowledge/guides/${id}/re-embed`); return resp.data.data as { id: string }; }, };