/** * CRM Routes * Multi-project CRM system */ const express = require('express'); const router = express.Router(); const crmController = require('../controllers/crm.controller'); const { authenticateToken, requireRole } = require('../middleware/auth.middleware'); const { asyncHandler } = require('../middleware/error.middleware'); // Dashboard router.get('/dashboard/stats', authenticateToken, requireRole('admin', 'moderator'), asyncHandler(crmController.getDashboardStats) ); // Contacts router.get('/contacts', authenticateToken, requireRole('admin', 'moderator'), asyncHandler(crmController.listContacts) ); router.get('/contacts/:id', authenticateToken, requireRole('admin', 'moderator'), asyncHandler(crmController.getContact) ); // Organizations router.get('/organizations', authenticateToken, requireRole('admin', 'moderator'), asyncHandler(crmController.listOrganizations) ); router.get('/organizations/:id', authenticateToken, requireRole('admin', 'moderator'), asyncHandler(crmController.getOrganization) ); // SLA Tracking router.get('/sla/dashboard', authenticateToken, requireRole('admin', 'moderator'), asyncHandler(crmController.getSLADashboard) ); // Response Templates router.get('/templates', authenticateToken, requireRole('admin', 'moderator'), asyncHandler(crmController.listTemplates) ); router.post('/templates/:id/render', authenticateToken, requireRole('admin', 'moderator'), asyncHandler(crmController.renderTemplate) ); module.exports = router;