/** * 项目相关 API * 素材库需要 project_id,前端自动管理默认项目 */ import apiClient from "./client" export interface ProjectItem { id: string name: string description: string } /** 后端 ProjectResponse 只返回 id, name, description */ interface BackendProjectResponse { id: string name: string description: string } /** 后端 ListProjectsResponse 返回 { items: [...] } */ interface BackendListProjectsResponse { items: BackendProjectResponse[] } const toProjectItem = (item: BackendProjectResponse): ProjectItem => ({ id: item.id, name: item.name, description: item.description, }) /** 获取当前用户的项目列表 */ export const getProjects = async (): Promise => { const response = await apiClient.get("/projects") return (response.data.items || []).map(toProjectItem) } /** 创建项目 */ export const createProject = async (data: { name: string description?: string }): Promise => { const response = await apiClient.post("/projects", { name: data.name, description: data.description || "", }) return toProjectItem(response.data) } /** 获取或创建默认项目(素材库需要 project_id) */ export const getOrCreateDefaultProject = async (): Promise => { const projects = await getProjects() if (projects.length > 0) { return projects[0] } // 没有项目时自动创建默认项目 return createProject({ name: "默认项目", description: "系统自动创建的默认项目", }) }