import apiClient from './client' import type { Tree, TreeListItem, TreeCreate, TreeUpdate, TreeFilters, TreeShareCreate, TreeShare, TreeVisibilityUpdate, TreeValidationResponse, AIFixTreeRequest, AIFixTreeResponse } from '@/types' export const treesApi = { async list(params?: TreeFilters): Promise { const response = await apiClient.get('/trees', { params }) return response.data }, async get(id: string): Promise { const response = await apiClient.get(`/trees/${id}`) return response.data }, async create(data: TreeCreate): Promise { const response = await apiClient.post('/trees', data) return response.data }, async update(id: string, data: TreeUpdate): Promise { const response = await apiClient.put(`/trees/${id}`, data) return response.data }, async delete(id: string): Promise { await apiClient.delete(`/trees/${id}`) }, // Legacy categories endpoint (returns string categories) async legacyCategories(): Promise { const response = await apiClient.get('/trees/categories') return response.data }, async search(query: string, limit?: number): Promise { const response = await apiClient.get('/trees/search', { params: { q: query, limit }, }) return response.data }, async fork(id: string, data?: { fork_reason?: string; name?: string }): Promise { const response = await apiClient.post(`/trees/${id}/fork`, data || {}) return response.data }, // Tree sharing async createShare(id: string, data: TreeShareCreate): Promise { const response = await apiClient.post(`/trees/${id}/share`, data) return response.data }, async listShares(id: string): Promise { const response = await apiClient.get(`/trees/${id}/shares`) return response.data }, async updateVisibility(id: string, data: TreeVisibilityUpdate): Promise { const response = await apiClient.patch(`/trees/${id}/visibility`, data) return response.data }, // Tree validation async canPublish(id: string): Promise { const response = await apiClient.post(`/trees/${id}/can-publish`) return response.data }, // AI auto-fix async fixTree(request: AIFixTreeRequest): Promise { const response = await apiClient.post('/ai/fix-tree', request) return response.data }, } export default treesApi