import type { Project, ProjectWorkspace } from "@paperclipai/shared"; import { api } from "./client"; function withCompanyScope(path: string, companyId?: string) { if (!companyId) return path; const separator = path.includes("?") ? "&" : "?"; return `${path}${separator}companyId=${encodeURIComponent(companyId)}`; } function projectPath(id: string, companyId?: string, suffix = "") { return withCompanyScope(`/projects/${encodeURIComponent(id)}${suffix}`, companyId); } export const projectsApi = { list: (companyId: string) => api.get(`/companies/${companyId}/projects`), get: (id: string, companyId?: string) => api.get(projectPath(id, companyId)), create: (companyId: string, data: Record) => api.post(`/companies/${companyId}/projects`, data), update: (id: string, data: Record, companyId?: string) => api.patch(projectPath(id, companyId), data), listWorkspaces: (projectId: string, companyId?: string) => api.get(projectPath(projectId, companyId, "/workspaces")), createWorkspace: (projectId: string, data: Record, companyId?: string) => api.post(projectPath(projectId, companyId, "/workspaces"), data), updateWorkspace: (projectId: string, workspaceId: string, data: Record, companyId?: string) => api.patch( projectPath(projectId, companyId, `/workspaces/${encodeURIComponent(workspaceId)}`), data, ), removeWorkspace: (projectId: string, workspaceId: string, companyId?: string) => api.delete(projectPath(projectId, companyId, `/workspaces/${encodeURIComponent(workspaceId)}`)), remove: (id: string, companyId?: string) => api.delete(projectPath(id, companyId)), };