diff --git a/check_config.js b/check_config.js new file mode 100644 index 0000000..56156b6 --- /dev/null +++ b/check_config.js @@ -0,0 +1,74 @@ +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(); diff --git a/package.json b/package.json index 2a51b9a..f3aa84c 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "eslint" + "lint": "eslint", + "check-config": "node --env-file=.env.local check_config.js" }, "dependencies": { "@tiptap/extension-color": "^3.21.0",