const InvoiceService = require('../../services/invoice/InvoiceService'); const service = new InvoiceService(); module.exports = { async listMine(req, res) { try { const data = await service.listMine(req.user.id, { status: req.query.status, limit: Number(req.query.limit || 50), offset: Number(req.query.offset || 0), }); return res.json({ success: true, data }); } catch (e) { console.error('[INVOICE LIST MINE]', e); return res.status(400).json({ success: false, message: e.message }); } }, async adminList(req, res) { try { const data = await service.adminList({ status: req.query.status, limit: Number(req.query.limit || 200), offset: Number(req.query.offset || 0), }); return res.json({ success: true, data }); } catch (e) { console.error('[INVOICE ADMIN LIST]', e); return res.status(403).json({ success: false, message: e.message }); } }, async pay(req, res) { try { const data = await service.markPaid(req.params.id, { payment_method: req.body.payment_method, transaction_id: req.body.transaction_id, amount: req.body.amount, paid_at: req.body.paid_at ? new Date(req.body.paid_at) : undefined, details: req.body.details, }); return res.json({ success: true, data }); } catch (e) { console.error('[INVOICE PAY]', e); return res.status(400).json({ success: false, message: e.message }); } }, };