const BaseFinancialRepository = require('./BaseFinancialRepository'); /** * Revenue Repository * * Manages revenue and income tracking. */ class RevenueRepository extends BaseFinancialRepository { constructor() { super('pg_fn_revenue'); } async findBySiteId(siteId) { return await this.findAll({ site_id: siteId }, { orderBy: 'revenue_date', orderDirection: 'desc' }); } async findBySource(siteId, source) { return await this.findAll({ site_id: siteId, source }); } async createRevenue(revenueData) { if (!revenueData.site_id || !revenueData.revenue_date || !revenueData.amount) { throw new Error('Missing required fields for revenue'); } return await this.create({ ...revenueData, payment_status: revenueData.payment_status || 'pending', created_at: new Date().toISOString(), updated_at: new Date().toISOString() }); } } module.exports = RevenueRepository;