import type { Project, Task } from './types' import { get, post, put, del } from './client' export async function listProjects( page?: number, pageSize?: number ): Promise { const params = new URLSearchParams() if (page !== undefined) params.set('page', String(page)) if (pageSize !== undefined) params.set('pageSize', String(pageSize)) const url = `/api/v1/projects${params.toString() ? '?' + params : ''}` const resp = await get<{ total: number projects: Project[] }>(url) return resp.projects } export async function getProject(projectId: string): Promise { return get(`/api/v1/projects/${projectId}`) } export async function createProject( name: string, style?: Record ): Promise { return post('/api/v1/projects', { name, style }) } export async function deleteProject(projectId: string): Promise { return del(`/api/v1/projects/${projectId}`) } export async function updateProject( projectId: string, data: { name: string } ): Promise { return put(`/api/v1/projects/${projectId}`, data) } export async function getStyle( projectId: string ): Promise> { const resp = await get<{ kvPairs: Record }>( `/api/v1/projects/${projectId}/style` ) return resp.kvPairs } export async function saveStyle( projectId: string, kvPairs: Record ): Promise { return put(`/api/v1/projects/${projectId}/style`, { kvPairs }) } export async function getTasks(projectId: string): Promise { return get(`/api/v1/projects/${projectId}/tasks`) }