const express = require('express'); const router = express.Router(); const supabase = require('../services/supabase'); const { requireAuth } = require('../middleware/auth'); const { asyncHandler } = require('../middleware/security'); const { PAYMENT_METHODS } = require('../config/constants'); // GET /payments — Payment ledger router.get('/', requireAuth, asyncHandler(async (req, res) => { const { data: payments } = await supabase .from('payments') .select('*, load:loads(from_city, to_city, shipper:shippers(name))') .order('payment_date', { ascending: false, nullsFirst: false }) .limit(50); res.render('pages/payments/list', { payments: payments || [], PAYMENT_METHODS, }); })); // POST /payments — Record a payment router.post('/', requireAuth, asyncHandler(async (req, res) => { const { load_id, type, direction, amount, method, payment_date, notes } = req.body; await supabase.from('payments').insert({ load_id, type, direction, amount: parseFloat(amount) || 0, method: method || 'bank_transfer', payment_date: payment_date || null, notes: notes || null, }); res.redirect(req.get('Referer') || '/payments'); })); module.exports = router;