import request from '@/utils/request'; type ApiResult = { code: number; msg: string; data: T; }; export type CaseTag = { text: string; type: string; }; export type CaseSummaryItem = { label: string; text: string; }; export type CaseRecord = { caseId: string; title: string; type: string; status: string; time: string; owner: string; summary: string; }; export type CaseDetailResponse = { caseId: string; fileName: string; title: string; type: string; status: string; time: string; owner: string; transcript: string; summary: string; mediaUrl?: string; mediaOssId?: number | null; }; export type CaseUploadResponse = { caseId: string; fileName: string; transcript: string; tags: CaseTag[]; source: string; }; export type CaseOrganizeResponse = { caseId: string; summary: CaseSummaryItem[]; tags: CaseTag[]; aiSummary: string; source: string; }; export type CaseCurateResponse = { selectedCaseIds: string[]; records: CaseRecord[]; sampleHint: string; }; export function uploadCaseAudio(data: FormData): Promise> { return request({ url: '/api/knowledge/case/upload', method: 'post', data, headers: { repeatSubmit: false } }); } export function organizeKnowledgeCase(data: { caseId: string }): Promise> { return request({ url: '/api/knowledge/case/organize', method: 'post', data, headers: { repeatSubmit: false } }); } export function curateKnowledgeCase(data: { caseId: string; criteria: string; limit: number }): Promise> { return request({ url: '/api/knowledge/case/curate', method: 'post', data, headers: { repeatSubmit: false } }); } export function getCaseRecords(limit = 20): Promise> { return request({ url: `/api/knowledge/case/records?limit=${limit}`, method: 'get' }); } export function getCaseDetail(caseId: string): Promise> { return request({ url: `/api/knowledge/case/records/${encodeURIComponent(caseId)}`, method: 'get' }); }