import express from 'express'; const router = express.Router(); import { submitApplication, getApplications, getApplicationById, updateApplicationStatus, uploadDocuments, getApplicationDocuments, bulkShortlist, assignArchitectureTeam, updateArchitectureStatus, generateDealerCodes, retriggerEvaluators, getDocumentConfigs, getDocumentConfigMetadata, createDocumentConfig, updateDocumentConfig, deleteDocumentConfig, updateApplication, exportApplicationResponses, convertToOpportunity, bulkConvertToOpportunity } from './onboarding.controller.js'; import { authenticate } from '../../common/middleware/auth.js'; import { uploadSingle } from '../../common/middleware/upload.js'; // All routes require authentication (or public for submission? Keeping auth for now) // Public route for application submission router.post('/apply', submitApplication); // All subsequent routes require authentication router.use(authenticate as any); router.post('/document-configs', createDocumentConfig); router.put('/document-configs/:id', updateDocumentConfig); router.delete('/document-configs/:id', deleteDocumentConfig); router.get('/applications', getApplications); router.get('/applications/export-responses', exportApplicationResponses); router.get('/document-configs/metadata', getDocumentConfigMetadata); router.get('/document-configs', getDocumentConfigs); router.post('/applications/shortlist', bulkShortlist); // Existing route, updated to named import router.get('/applications/:id', getApplicationById); router.put('/applications/:id', updateApplication); router.put('/applications/:id/status', updateApplicationStatus); router.post('/applications/:id/documents', uploadSingle, uploadDocuments); router.get('/applications/:id/documents', getApplicationDocuments); // Existing route, updated to named import router.post('/applications/bulk-convert-to-opportunity', bulkConvertToOpportunity); router.post('/applications/:id/convert-to-opportunity', convertToOpportunity); // Architecture-related routes router.post('/applications/:id/assign-architecture', assignArchitectureTeam); router.put('/applications/:id/architecture-status', updateArchitectureStatus); router.post('/applications/:id/generate-codes', generateDealerCodes); router.post('/applications/:id/retrigger-evaluators', retriggerEvaluators); // Questionnaire Routes router.get('/questionnaires', (req, res, next) => { import('./questionnaire.controller.js').then(c => c.getAllQuestionnaires(req, res)).catch(next); }); router.get('/questionnaires/:id', (req, res, next) => { import('./questionnaire.controller.js').then(c => c.getQuestionnaireById(req, res)).catch(next); }); export default router;