plugin-financials/repositories/RevenueRepository.js
2025-11-03 13:51:33 +02:00

37 lines
945 B
JavaScript

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;