const realtime = require('../../realtime/core.js'); module.exports = { command: 'structure', description: 'Mostra la struttura dati del plugin', pattern: /\/structure/, execute: async (bot, msg) => { const chatId = msg.chat.id; const rules = realtime.getSensorRules(); if (!rules) { return bot.sendMessage(chatId, 'Nessuna configurazione sensori caricata.'); } let text = `*Struttura Dati Plugin*\n`; text += `Versione: \`${rules.version}\`\n`; text += `Attivo: ${rules.isActive ? 'Si' : 'No'}\n`; text += `Collezioni: ${rules.items?.length || 0}\n\n`; if (rules.items) { for (const item of rules.items) { text += `*${item.collection}*\n`; text += ` Path: \`${item.main_path}\`\n`; if (item.elements && Array.isArray(item.elements)) { for (const element of item.elements) { const { subelements, ...fields } = element; const [name, subPath] = Object.entries(fields)[0]; text += ` - ${name} -> \`${item.main_path}.${subPath}\`\n`; if (subelements && Array.isArray(subelements)) { for (const sub of subelements) { const [sName, sPath] = Object.entries(sub)[0]; text += ` - ${sName} -> \`${item.main_path}.${subPath}.${sPath}\`\n`; } } } } else { text += ` (valore singolo)\n`; } text += `\n`; } } await bot.sendMessage(chatId, text, { parse_mode: 'Markdown' }); } };