const express = require('express'); const router = express.Router(); const CycleFeedInitialBalance = require('../models/CycleFeedInitialBalance'); const { convertKeysToCamelCase } = require('../utils/caseConverter'); /** * GET /api/cycle-feed-initial-balance/:cycleId * Get initial balance for a specific cycle */ router.get('/:cycleId', async (req, res) => { try { const { cycleId } = req.params; const balance = await CycleFeedInitialBalance.getByCycleId(cycleId); if (!balance) { return res.json({ success: true, data: null }); } res.json({ success: true, data: convertKeysToCamelCase(balance) }); } catch (error) { console.error('Error fetching cycle feed initial balance:', error); res.status(500).json({ success: false, error: error.message }); } }); /** * PUT /api/cycle-feed-initial-balance * Upsert initial balance for a cycle */ router.put('/', async (req, res) => { try { const { cycleId, saldoAwal, createdBy } = req.body; // Validation if (!cycleId || saldoAwal === undefined) { return res.status(400).json({ success: false, error: 'Missing required fields: cycleId, saldoAwal' }); } if (saldoAwal < 0) { return res.status(400).json({ success: false, error: 'saldoAwal cannot be negative' }); } if (!Number.isInteger(saldoAwal)) { return res.status(400).json({ success: false, error: 'saldoAwal must be an integer' }); } const balance = await CycleFeedInitialBalance.upsert( cycleId, saldoAwal, createdBy || 'system' ); res.json({ success: true, data: convertKeysToCamelCase(balance) }); } catch (error) { console.error('Error saving cycle feed initial balance:', error); res.status(500).json({ success: false, error: error.message }); } }); /** * DELETE /api/cycle-feed-initial-balance/:cycleId * Delete initial balance for a cycle */ router.delete('/:cycleId', async (req, res) => { try { const { cycleId } = req.params; await CycleFeedInitialBalance.delete(cycleId); res.json({ success: true }); } catch (error) { console.error('Error deleting cycle feed initial balance:', error); res.status(500).json({ success: false, error: error.message }); } }); module.exports = router;