const express = require('express'); const router = express.Router(); const { specialAssessmentRepository } = require('../repositories'); /** * GET /api/plugins/financials/assessments * Get all special assessments for site */ router.get('/', async (req, res) => { try { const { site_id } = req.query; if (!site_id) { return res.status(400).json({ success: false, error: 'Missing required parameter: site_id' }); } const assessments = await specialAssessmentRepository.findBySiteId(site_id); res.json({ success: true, data: assessments, message: 'Special assessments retrieved successfully' }); } catch (error) { console.error('Failed to get special assessments:', error); res.status(500).json({ success: false, error: 'Failed to retrieve special assessments', message: error.message }); } }); /** * POST /api/plugins/financials/assessments * Create special assessment */ router.post('/', async (req, res) => { try { const { site_id, assessment_name, description, total_amount, unit_count, due_date, project_type, created_by } = req.body; if (!site_id || !assessment_name || !total_amount || !unit_count || !due_date) { return res.status(400).json({ success: false, error: 'Missing required fields: site_id, assessment_name, total_amount, unit_count, due_date' }); } const assessment = await specialAssessmentRepository.createAssessment({ site_id, assessment_name, description: description || '', total_amount, unit_count, amount_per_unit: total_amount / unit_count, due_date, project_type: project_type || 'other', status: 'pending', created_by: created_by || 'system' }); res.json({ success: true, data: assessment, message: 'Special assessment created successfully' }); } catch (error) { console.error('Failed to create special assessment:', error); res.status(500).json({ success: false, error: 'Failed to create special assessment', message: error.message }); } }); module.exports = router;