Some checks failed
ERP Core CI / Backend Lint (push) Has been cancelled
ERP Core CI / Backend Unit Tests (push) Has been cancelled
ERP Core CI / Backend Integration Tests (push) Has been cancelled
ERP Core CI / Frontend Lint (push) Has been cancelled
ERP Core CI / Frontend Unit Tests (push) Has been cancelled
ERP Core CI / Frontend E2E Tests (push) Has been cancelled
ERP Core CI / Database DDL Validation (push) Has been cancelled
ERP Core CI / Backend Build (push) Has been cancelled
ERP Core CI / Frontend Build (push) Has been cancelled
ERP Core CI / CI Success (push) Has been cancelled
Performance Tests / Lighthouse CI (push) Has been cancelled
Performance Tests / Bundle Size Analysis (push) Has been cancelled
Performance Tests / k6 Load Tests (push) Has been cancelled
Performance Tests / Performance Summary (push) Has been cancelled
- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8 - Actualizaciones en modulos CRM y OpenAPI Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
145 lines
5.2 KiB
TypeScript
145 lines
5.2 KiB
TypeScript
import { Router } from 'express';
|
|
import { crmController } from './crm.controller.js';
|
|
import { authenticate, requireRoles } from '../../shared/middleware/auth.middleware.js';
|
|
|
|
const router = Router();
|
|
|
|
// All routes require authentication
|
|
router.use(authenticate);
|
|
|
|
// ========== LEADS ==========
|
|
|
|
router.get('/leads', (req, res, next) => crmController.getLeads(req, res, next));
|
|
|
|
router.get('/leads/:id', (req, res, next) => crmController.getLead(req, res, next));
|
|
|
|
router.post('/leads', requireRoles('admin', 'manager', 'sales', 'super_admin'), (req, res, next) =>
|
|
crmController.createLead(req, res, next)
|
|
);
|
|
|
|
router.put('/leads/:id', requireRoles('admin', 'manager', 'sales', 'super_admin'), (req, res, next) =>
|
|
crmController.updateLead(req, res, next)
|
|
);
|
|
|
|
router.post('/leads/:id/move', requireRoles('admin', 'manager', 'sales', 'super_admin'), (req, res, next) =>
|
|
crmController.moveLeadStage(req, res, next)
|
|
);
|
|
|
|
router.post('/leads/:id/convert', requireRoles('admin', 'manager', 'sales', 'super_admin'), (req, res, next) =>
|
|
crmController.convertLead(req, res, next)
|
|
);
|
|
|
|
router.post('/leads/:id/lost', requireRoles('admin', 'manager', 'sales', 'super_admin'), (req, res, next) =>
|
|
crmController.markLeadLost(req, res, next)
|
|
);
|
|
|
|
router.delete('/leads/:id', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.deleteLead(req, res, next)
|
|
);
|
|
|
|
// ========== OPPORTUNITIES ==========
|
|
|
|
router.get('/opportunities', (req, res, next) => crmController.getOpportunities(req, res, next));
|
|
|
|
router.get('/opportunities/:id', (req, res, next) => crmController.getOpportunity(req, res, next));
|
|
|
|
router.post('/opportunities', requireRoles('admin', 'manager', 'sales', 'super_admin'), (req, res, next) =>
|
|
crmController.createOpportunity(req, res, next)
|
|
);
|
|
|
|
router.put('/opportunities/:id', requireRoles('admin', 'manager', 'sales', 'super_admin'), (req, res, next) =>
|
|
crmController.updateOpportunity(req, res, next)
|
|
);
|
|
|
|
router.post('/opportunities/:id/move', requireRoles('admin', 'manager', 'sales', 'super_admin'), (req, res, next) =>
|
|
crmController.moveOpportunityStage(req, res, next)
|
|
);
|
|
|
|
router.post('/opportunities/:id/won', requireRoles('admin', 'manager', 'sales', 'super_admin'), (req, res, next) =>
|
|
crmController.markOpportunityWon(req, res, next)
|
|
);
|
|
|
|
router.post('/opportunities/:id/lost', requireRoles('admin', 'manager', 'sales', 'super_admin'), (req, res, next) =>
|
|
crmController.markOpportunityLost(req, res, next)
|
|
);
|
|
|
|
router.post('/opportunities/:id/quote', requireRoles('admin', 'manager', 'sales', 'super_admin'), (req, res, next) =>
|
|
crmController.createOpportunityQuotation(req, res, next)
|
|
);
|
|
|
|
router.delete('/opportunities/:id', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.deleteOpportunity(req, res, next)
|
|
);
|
|
|
|
// ========== PIPELINE ==========
|
|
|
|
router.get('/pipeline', (req, res, next) => crmController.getPipeline(req, res, next));
|
|
|
|
// ========== LEAD STAGES ==========
|
|
|
|
router.get('/lead-stages', (req, res, next) => crmController.getLeadStages(req, res, next));
|
|
|
|
router.post('/lead-stages', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.createLeadStage(req, res, next)
|
|
);
|
|
|
|
router.put('/lead-stages/:id', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.updateLeadStage(req, res, next)
|
|
);
|
|
|
|
router.delete('/lead-stages/:id', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.deleteLeadStage(req, res, next)
|
|
);
|
|
|
|
// ========== OPPORTUNITY STAGES ==========
|
|
|
|
router.get('/opportunity-stages', (req, res, next) => crmController.getOpportunityStages(req, res, next));
|
|
|
|
router.post('/opportunity-stages', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.createOpportunityStage(req, res, next)
|
|
);
|
|
|
|
router.put('/opportunity-stages/:id', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.updateOpportunityStage(req, res, next)
|
|
);
|
|
|
|
router.delete('/opportunity-stages/:id', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.deleteOpportunityStage(req, res, next)
|
|
);
|
|
|
|
// ========== LOST REASONS ==========
|
|
|
|
router.get('/lost-reasons', (req, res, next) => crmController.getLostReasons(req, res, next));
|
|
|
|
router.post('/lost-reasons', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.createLostReason(req, res, next)
|
|
);
|
|
|
|
router.put('/lost-reasons/:id', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.updateLostReason(req, res, next)
|
|
);
|
|
|
|
router.delete('/lost-reasons/:id', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.deleteLostReason(req, res, next)
|
|
);
|
|
|
|
// ========== TAGS ==========
|
|
|
|
router.get('/tags', (req, res, next) => crmController.getTags(req, res, next));
|
|
|
|
router.get('/tags/:id', (req, res, next) => crmController.getTag(req, res, next));
|
|
|
|
router.post('/tags', requireRoles('admin', 'manager', 'super_admin'), (req, res, next) =>
|
|
crmController.createTag(req, res, next)
|
|
);
|
|
|
|
router.put('/tags/:id', requireRoles('admin', 'manager', 'super_admin'), (req, res, next) =>
|
|
crmController.updateTag(req, res, next)
|
|
);
|
|
|
|
router.delete('/tags/:id', requireRoles('admin', 'super_admin'), (req, res, next) =>
|
|
crmController.deleteTag(req, res, next)
|
|
);
|
|
|
|
export default router;
|