'use server' import { Client, Databases, ID, Query } from 'node-appwrite'; import { revalidatePath } from 'next/cache'; const ENDPOINT = process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT || 'https://appwrite.almeira.com.co/v1'; const PROJECT_ID = process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID || '69b84df5003bd8957c5c'; const DATABASE_ID = 'main'; const COLLECTION_ID = 'entity_config'; async function getAdminClient() { const client = new Client() .setEndpoint(ENDPOINT) .setProject(PROJECT_ID) .setKey(process.env.APPWRITE_API_KEY || ''); return new Databases(client); } export async function getEntityConfig() { try { const databases = await getAdminClient(); const response = await databases.listDocuments( DATABASE_ID, COLLECTION_ID, [Query.limit(1)] ); return response.documents[0] || null; } catch (error) { console.error('Error fetching entity config:', error); return null; } } // ALIAS PARA COMPATIBILIDAD CON DASHBOARD export const getEntity = getEntityConfig; export async function updateEntityConfig(data: any) { try { const databases = await getAdminClient(); const existing = await getEntityConfig(); if (existing) { const result = await databases.updateDocument( DATABASE_ID, COLLECTION_ID, existing.$id, data ); revalidatePath('/'); return result; } else { const result = await databases.createDocument( DATABASE_ID, COLLECTION_ID, ID.unique(), data ); revalidatePath('/'); return result; } } catch (error) { console.error('Error updating entity config:', error); throw error; } } // ALIAS PARA COMPATIBILIDAD CON DASHBOARD export const updateEntity = updateEntityConfig;