const express = require('express'); const router = express.Router(); const auth = require('../../../src/middleware/auth'); const { checkPluginPermission, checkPluginSubscription, scopeToSite, pluginRateLimit } = require('../../../src/middleware/pluginAuth'); // Import plugin-specific route modules const messagesRoutes = require('./messages'); const notificationsRoutes = require('./notifications'); const templatesRoutes = require('./templates'); const analyticsRoutes = require('./analytics'); // TEMPORARILY REMOVE AUTHENTICATION FOR TESTING // router.use(auth.authenticateToken); // router.use(scopeToSite); // router.use(checkPluginSubscription('communication')); // router.use(pluginRateLimit(200, 15 * 60 * 1000)); // 200 requests per 15 minutes // Mount plugin-specific routes router.use('/messages', messagesRoutes); router.use('/notifications', notificationsRoutes); router.use('/templates', templatesRoutes); router.use('/analytics', analyticsRoutes); // Plugin health check endpoint router.get('/health', (req, res) => { res.json({ success: true, plugin: 'communication', version: '1.0.0', status: 'healthy', timestamp: new Date().toISOString() }); }); // Plugin info endpoint router.get('/info', (req, res) => { res.json({ success: true, plugin: { name: 'communication', displayName: 'Communication Plugin', version: '1.0.0', description: 'Advanced communication features for HOA management', permissions: [ 'read_messages', 'send_messages', 'manage_templates', 'schedule_messages', 'view_analytics' ] } }); }); module.exports = router;