37 lines
945 B
JavaScript
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;
|
|
|
|
|