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 ReviewApplication { id: number; taskNum: string; title: string; description?: string; resourceUrl?: string; status: "TODO" | "DOING" | "DONE"; createdTime?: string; lastModifiedTime?: string; } export interface ReviewMindMap { id: number; taskNum: string; title: string; content: string; contentFormat: "TEXT" | "MERMAID" | "JSON"; createdTime?: string; lastModifiedTime?: string; } export const getReviewFeed = (limit: number = 30, mode: "recent" | "random" = "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 getReviewApplications = (taskNum: string) => { return request.get(`/review/applications/${taskNum}`); }; export const createReviewApplication = (payload: { taskNum: string; title: string; description?: string; resourceUrl?: string; status?: ReviewApplication["status"]; }) => { return request.post("/review/applications", payload); }; export const updateReviewApplication = ( id: number, payload: { title: string; description?: string; resourceUrl?: string; status?: ReviewApplication["status"]; }, ) => { return request.put(`/review/applications/${id}`, payload); }; export const deleteReviewApplication = (id: number) => { return request.del(`/review/applications/${id}`); }; 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); };