almeira-web/cleanup_types.js

39 lines
1.7 KiB
JavaScript

const sdk = require('node-appwrite');
const client = new sdk.Client();
const databases = new sdk.Databases(client);
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 API_KEY = process.env.APPWRITE_API_KEY || 'standard_ee81a4ca6784c0fa6a23abab0a983dbba9cd0c2d8e211a00c759d9801f5d8e27b43a605bfa373e13106da87acfc7673608f0ffb0eb04e10cae3dae93d2404bfda8676f96e3fcfd6bd642f6e12d69367916b796c54e98e2e4c4bc0b7a27aa42ba5048582fcbd45b1365b51c5014cb939c1853923c418048ff0e39c2237065da3c';
client.setEndpoint(ENDPOINT).setProject(PROJECT_ID).setKey(API_KEY);
async function cleanup() {
try {
console.log("Limpiando duplicados en Tipos de Publicacion...");
const res = await databases.listDocuments('almeira', 'publication_types', []);
const seen = new Set();
let deleted = 0;
for (const doc of res.documents) {
const signature = doc.codigo.toUpperCase() + "_" + doc.descripcion.toUpperCase();
if (seen.has(signature)) {
// Duplicate found! Delete it
console.log(`Eliminando duplicado: ${doc.$id} (${doc.descripcion})`);
await databases.deleteDocument('almeira', 'publication_types', doc.$id);
deleted++;
} else {
seen.add(signature);
console.log(`Manteniendo original: ${doc.$id} (${doc.descripcion})`);
}
}
console.log(`\nProceso finalizado. Se eliminaron ${deleted} registros duplicados.`);
} catch(e) {
console.error("Error limpiando:", e.message);
}
}
cleanup();