import type { Asset } from "@/stores/use-asset-store"; import type { CanvasProject } from "@/stores/canvas/use-canvas-store"; import { apiClient, request } from "@/services/api/request"; const api = apiClient; export type RemoteUserDataSummary = { id: string; kind?: string; title: string; createdAt: string; updatedAt: string; }; export type RemoteUserDataSnapshot = { assets: Asset[]; projects: CanvasProject[]; }; export function getRemoteUserDataSnapshot() { return request(api.get("/user-data/snapshot")); } export function listRemoteAssets() { return request<{ assets: RemoteUserDataSummary[] }>(api.get("/assets")); } export function getRemoteAsset(id: string) { return request<{ asset: Asset }>(api.get(`/assets/${encodeURIComponent(id)}`)); } export function upsertRemoteAsset(asset: Asset) { return request<{ asset: RemoteUserDataSummary }>(api.put(`/assets/${encodeURIComponent(asset.id)}`, { asset })); } export function deleteRemoteAsset(id: string) { return request<{ id: string }>(api.delete(`/assets/${encodeURIComponent(id)}`)); } export function listRemoteCanvasProjects() { return request<{ projects: RemoteUserDataSummary[] }>(api.get("/canvas-projects")); } export function getRemoteCanvasProject(id: string) { return request<{ project: CanvasProject }>(api.get(`/canvas-projects/${encodeURIComponent(id)}`)); } export function upsertRemoteCanvasProject(project: CanvasProject) { return request<{ project: RemoteUserDataSummary }>(api.put(`/canvas-projects/${encodeURIComponent(project.id)}`, { project })); } export function deleteRemoteCanvasProject(id: string) { return request<{ id: string }>(api.delete(`/canvas-projects/${encodeURIComponent(id)}`)); }