import request from "@/utils/request"; export interface ReviewFeedItem { id: number; sessionNum: string; taskNum: string; taskName: string; sourceType: "REPORT" | "FRAGMENT"; content: string; createdTime: string; } export interface ReviewTaskStats { taskNum: string; taskName: string; reportCount: number; fragmentCount: number; effectiveTime: number; sessionCount: number; todayEffectiveTime: number; weekEffectiveTime: number; avgEffectiveTime: number; avgEffectivenessRatio: number; } export interface ReviewMindMap { id: number; taskNum: string; title: string; content: string; contentFormat: "TEXT" | "MERMAID" | "JSON"; sourceType?: "MANUAL" | "FILE"; fileName?: string; filePath?: string; fileFormat?: "XMIND" | "MARKDOWN" | "OPML" | "FREEMIND" | "TEXT"; parsedContent?: string; parseStatus?: "SUCCESS" | "FAILED"; parseError?: string; summary?: string; lastParsedTime?: string; createdTime?: string; lastModifiedTime?: string; } export const getReviewFeed = (limit: number = 30, mode: "recent" | "random" | "smart" = "recent") => { return request.get("/review/feed", { limit, mode }); }; export const getReviewTaskStats = () => { return request.get("/review/tasks"); }; export const getReviewTaskStatsByTask = (taskNum: string) => { return request.get(`/review/tasks/${taskNum}`); }; export const getReportDetail = (id: number) => { return request.get(`/review/report/${id}`); }; export const getFragmentDetail = (id: number) => { return request.get(`/review/fragment/${id}`); }; export const getTaskReview = (taskNum: string) => { return request.get(`/review/task/${taskNum}`); }; export const getReviewMindMap = (taskNum: string) => { return request.get(`/review/mind-map/${taskNum}`); }; export const upsertReviewMindMap = ( taskNum: string, payload: { title: string; content: string; contentFormat?: ReviewMindMap["contentFormat"]; }, ) => { return request.put(`/review/mind-map/${taskNum}`, payload); }; export const uploadReviewMindMap = (taskNum: string, file: File) => { const formData = new FormData(); formData.append("file", file); return request.post(`/review/mind-map/${taskNum}/upload`, formData, { headers: { "Content-Type": "multipart/form-data" }, }); };