const express = require('express'); const router = express.Router(); const multer = require('multer'); const path = require('path'); const fs = require('fs'); // Configure multer for memory storage (we'll forward the buffer to the external API) const upload = multer({ storage: multer.memoryStorage() }); // Ensure uploads dir exists for PDF reports const reportsDir = path.join(__dirname, '../uploads/reports'); if (!fs.existsSync(reportsDir)) { fs.mkdirSync(reportsDir, { recursive: true }); } const diskStorage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, reportsDir) }, filename: function (req, file, cb) { const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9) cb(null, (req.body.phone || 'anonymous') + '-' + uniqueSuffix + '.pdf') } }); const uploadPdf = multer({ storage: diskStorage }); // Controllers const { analyzeImage } = require('../controllers/analysisController'); const { createUser, verifyOtp } = require('../controllers/userController'); const { createReport, getReport, savePdfReport } = require('../controllers/reportController'); const { sendOtp, sendReport } = require('../controllers/whatsappController'); const { getDashboardUsers } = require('../controllers/dashboardController'); // 1. Analysis Proxy router.post('/perfectcorp/analyze', upload.single('image'), analyzeImage); // 2. User & OTP Management router.post('/users', createUser); router.post('/verify-otp', verifyOtp); // 3. Reports router.post('/reports', createReport); router.get('/reports/:reportId', getReport); router.post('/reports/save-pdf', uploadPdf.single('pdf'), savePdfReport); // 4. WhatsApp Integration router.post('/whatsapp/send-otp', sendOtp); router.post('/whatsapp/send-report', sendReport); // 5. Admin Dashboard router.get('/dashboard/users', getDashboardUsers); module.exports = router;