import { createSessionClient } from './appwrite.server'; export interface UserPreferences { hiddenColumns?: Record; // entidad -> lista de nombres de campos ocultos sortConfig?: Record; } /** * Obtiene las preferencias persistidas del usuario desde Appwrite Account Prefs */ export async function getUserPreferences(): Promise { try { const PROJECT_ID = process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID || '69b84df5003bd8957c5c'; const { cookies } = await import('next/headers'); const cookieStore = await cookies(); const sessionCookie = cookieStore.get(`a_session_${PROJECT_ID.toLowerCase()}`); // En modo bypass no hay preferencias persistidas reales que valga la pena pedir a account.get() if (sessionCookie?.value === "admin-bypass-session") { return {}; } const sessionClient = await createSessionClient(); if (!sessionClient) return {}; const account = await sessionClient.account.get(); return (account.prefs as UserPreferences) || {}; } catch (error) { console.error('Error fetching user prefs:', error); return {}; } } /** * Actualiza una preferencia especĂ­fica del usuario */ export async function updateUserPreference(update: Partial): Promise { try { const sessionClient = await createSessionClient(); if (!sessionClient) return false; const currentPrefs = await getUserPreferences(); const newPrefs = { ...currentPrefs, ...update }; await sessionClient.account.updatePrefs(newPrefs); return true; } catch (error) { console.error('Error updating user prefs:', error); return false; } }