import { apiClient } from "./client"; export interface ConfigFolder { id: string; user_id: string; name: string; description: string | null; mount_path: string; files: Record; project_overrides: Record }> | null; is_active: boolean; created_at: string; updated_at: string; } export interface CreateConfigFolderRequest { name: string; description?: string; mount_path: string; files?: Record; is_active?: boolean; } export interface UpdateConfigFolderRequest { name?: string; description?: string; mount_path?: string; files?: Record; is_active?: boolean; } export interface ProjectOverrideRequest { mount_path?: string; files?: Record; } export const listConfigFolders = async (): Promise => { const response = await apiClient.get("/config-folders"); return response.data; }; export const getConfigFolder = async (id: string): Promise => { const response = await apiClient.get(`/config-folders/${id}`); return response.data; }; export const createConfigFolder = async ( data: CreateConfigFolderRequest ): Promise => { const response = await apiClient.post("/config-folders", data); return response.data; }; export const updateConfigFolder = async ( id: string, data: UpdateConfigFolderRequest ): Promise => { const response = await apiClient.put(`/config-folders/${id}`, data); return response.data; }; export const deleteConfigFolder = async (id: string): Promise => { await apiClient.delete(`/config-folders/${id}`); }; export const addProjectOverride = async ( id: string, projectId: string, data: ProjectOverrideRequest ): Promise => { const response = await apiClient.post( `/config-folders/${id}/overrides/${projectId}`, data ); return response.data; }; export const updateProjectOverride = async ( id: string, projectId: string, data: ProjectOverrideRequest ): Promise => { const response = await apiClient.put( `/config-folders/${id}/overrides/${projectId}`, data ); return response.data; }; export const deleteProjectOverride = async ( id: string, projectId: string ): Promise => { await apiClient.delete(`/config-folders/${id}/overrides/${projectId}`); };