const { Client, Databases } = require('node-appwrite'); async function checkConfig() { console.log('🔍 Validando configuración de Almeira Web...\n'); const requiredVars = [ 'NEXT_PUBLIC_APPWRITE_ENDPOINT', 'NEXT_PUBLIC_APPWRITE_PROJECT_ID', 'APPWRITE_API_KEY', 'APPWRITE_DATABASE_ID' ]; let missing = false; requiredVars.forEach(v => { if (!process.env[v]) { console.error(`❌ Faltante: Variable de entorno ${v}`); missing = true; } else { console.log(`✅ Presente: ${v}`); } }); if (missing) { console.error('\n🛑 Error: Faltan variables de entorno críticas. Revisa tu archivo .env.local.'); process.exit(1); } const client = new Client() .setEndpoint(process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT) .setProject(process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID) .setKey(process.env.APPWRITE_API_KEY); const databases = new Databases(client); const databaseId = process.env.APPWRITE_DATABASE_ID; try { console.log(`\n📡 Conectando a Appwrite (${process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT})...`); const db = await databases.get(databaseId); console.log(`✅ Conexión exitosa a la base de datos: "${db.name}" (${databaseId})`); const collectionsToCheck = [ 'posts', 'settings', 'publication_types', 'categories', 'whatsapp_messages', 'entidad' ]; console.log('\n📦 Verificando colecciones críticas...'); for (const colId of collectionsToCheck) { try { const col = await databases.getCollection(databaseId, colId); console.log(`✅ Colección encontrada: ${col.name} (${colId})`); } catch (err) { console.error(`❌ Error en colección ${colId}: ${err.message}`); missing = true; } } } catch (err) { console.error(`❌ Error de conexión a Appwrite: ${err.message}`); process.exit(1); } if (missing) { console.error('\n🛑 Algunas colecciones no fueron encontradas. Revisa la base de datos en Appwrite.'); process.exit(1); } console.log('\n✨ ¡Configuración validada correctamente para producción!'); } checkConfig();