fix: 完善商品—模特库-视频项目-自由创作等删除先进垃圾桶及可恢复等流程
This commit is contained in:
@@ -277,7 +277,7 @@ export const api = {
|
||||
return request<Product>(`/api/products/${id}/restore/`, { method: "POST" });
|
||||
},
|
||||
purgeProduct(id: string) {
|
||||
// 彻底删除(不可恢复)
|
||||
// 彻底删除 = 二级软删除(从垃圾桶隐藏,DB 记录保留)
|
||||
return request<void>(`/api/products/${id}/purge/`, { method: "DELETE" });
|
||||
},
|
||||
projects() {
|
||||
@@ -302,6 +302,15 @@ export const api = {
|
||||
deleteProject(id: string) {
|
||||
return request<void>(`/api/projects/${id}/`, { method: "DELETE" });
|
||||
},
|
||||
projectsTrash() {
|
||||
return request<Paginated<Project>>("/api/projects/trash/");
|
||||
},
|
||||
restoreProject(id: string) {
|
||||
return request<Project>(`/api/projects/${id}/restore/`, { method: "POST" });
|
||||
},
|
||||
purgeProject(id: string) {
|
||||
return request<void>(`/api/projects/${id}/purge/`, { method: "DELETE" });
|
||||
},
|
||||
// 对话式脚本 agent · 流式(SSE)。逐帧回调 onEvent:tool(工具卡)/delta(思考前言)/draft/saved/done/error。
|
||||
// 用 fetch + ReadableStream 消费 text/event-stream(EventSource 只支持 GET,这里要 POST 带 body)。
|
||||
async agentScriptStream(
|
||||
@@ -603,6 +612,15 @@ export const api = {
|
||||
deleteModel(id: string) {
|
||||
return request<void>(`/api/models/${id}/`, { method: "DELETE" });
|
||||
},
|
||||
modelsTrash() {
|
||||
return request<Paginated<ModelEntity>>("/api/models/trash/");
|
||||
},
|
||||
restoreModel(id: string) {
|
||||
return request<ModelEntity>(`/api/models/${id}/restore/`, { method: "POST" });
|
||||
},
|
||||
purgeModel(id: string) {
|
||||
return request<void>(`/api/models/${id}/purge/`, { method: "DELETE" });
|
||||
},
|
||||
billingSummary() {
|
||||
return request<BillingSummary>("/api/billing/summary/");
|
||||
},
|
||||
@@ -650,6 +668,9 @@ export const api = {
|
||||
listConversations(mode: "image" | "model" | "cover" = "image") {
|
||||
return request<Paginated<ImageConversation>>(`/api/ai/image-conversations/?mode=${mode}&page_size=100`);
|
||||
},
|
||||
conversationsTrash(mode: "image" | "model" | "cover" = "image") {
|
||||
return request<Paginated<ImageConversation>>(`/api/ai/image-conversations/trash/?mode=${mode}&page_size=100`);
|
||||
},
|
||||
createConversation(payload: { mode?: "image" | "model" | "cover"; title?: string; product?: string | null }) {
|
||||
return request<ImageConversation>("/api/ai/image-conversations/", { method: "POST", body: JSON.stringify(payload) });
|
||||
},
|
||||
@@ -659,6 +680,12 @@ export const api = {
|
||||
deleteConversation(id: string) {
|
||||
return request<void>(`/api/ai/image-conversations/${id}/`, { method: "DELETE" });
|
||||
},
|
||||
restoreConversation(id: string) {
|
||||
return request<ImageConversation>(`/api/ai/image-conversations/${id}/restore/`, { method: "POST" });
|
||||
},
|
||||
purgeConversation(id: string) {
|
||||
return request<void>(`/api/ai/image-conversations/${id}/purge/`, { method: "DELETE" });
|
||||
},
|
||||
// 切换对话时回填:该对话历次生成的任务 + 成图
|
||||
conversationTasks(id: string) {
|
||||
return request<{ conversation_id: string; tasks: ImageConversationTask[] }>(`/api/ai/image-conversations/${id}/tasks/`);
|
||||
@@ -686,6 +713,11 @@ export const api = {
|
||||
`/api/ai/free-video/?offset=${offset}&page_size=${pageSize}`
|
||||
);
|
||||
},
|
||||
freeVideoTrash(offset = 0, pageSize = 20) {
|
||||
return request<{ results: FreeVideoTask[]; total: number; has_more: boolean }>(
|
||||
`/api/ai/free-video/trash/?offset=${offset}&page_size=${pageSize}`
|
||||
);
|
||||
},
|
||||
// web 进程内单次轮询+终态化(幂等):前端渐进轮询打这里,本地无 worker 也能收尾
|
||||
pollFreeVideo(id: string) {
|
||||
return request<{ task: FreeVideoTask }>(`/api/ai/free-video/${id}/poll/`, { method: "POST" });
|
||||
@@ -696,6 +728,12 @@ export const api = {
|
||||
deleteFreeVideo(id: string) {
|
||||
return request<void>(`/api/ai/free-video/${id}/`, { method: "DELETE" });
|
||||
},
|
||||
restoreFreeVideo(id: string) {
|
||||
return request<{ task: FreeVideoTask }>(`/api/ai/free-video/${id}/restore/`, { method: "POST" });
|
||||
},
|
||||
purgeFreeVideo(id: string) {
|
||||
return request<void>(`/api/ai/free-video/${id}/purge/`, { method: "DELETE" });
|
||||
},
|
||||
uploadFreeVideoRef(formData: FormData) {
|
||||
return request<FreeVideoUploadResult>("/api/ai/free-video/upload/", { method: "POST", body: formData });
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user