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 campaignsRoutes = require('./campaigns'); const formsRoutes = require('./forms'); const responsesRoutes = require('./responses'); const groupsRoutes = require('./groups'); // Mount plugin-specific routes router.use('/campaigns', campaignsRoutes); router.use('/forms', formsRoutes); router.use('/responses', responsesRoutes); router.use('/groups', groupsRoutes); // Plugin health check endpoint router.get('/health', (req, res) => { res.json({ success: true, plugin: 'voting', version: '1.0.0', status: 'healthy', timestamp: new Date().toISOString() }); }); // Plugin info endpoint router.get('/info', (req, res) => { res.json({ success: true, plugin: { name: 'voting', displayName: 'Voting Plugin', version: '1.0.0', description: 'Comprehensive voting system for HOA board elections, decision-making, and community surveys', permissions: [ 'view_campaigns', 'create_campaigns', 'edit_campaigns', 'delete_campaigns', 'view_results', 'manage_forms', 'export_data', 'view_analytics' ] } }); }); module.exports = router;