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

37 lines
932 B
JavaScript

const BaseFinancialRepository = require('./BaseFinancialRepository');
/**
* Budget Repository
*
* Manages budget planning and tracking (PREMIUM FEATURE).
*/
class BudgetRepository extends BaseFinancialRepository {
constructor() {
super('pg_fn_budgets');
}
async findBySiteId(siteId) {
return await this.findAll({ site_id: siteId }, { orderBy: 'fiscal_year' });
}
async findByFiscalYear(siteId, fiscalYear) {
return await this.findOne({ site_id: siteId, fiscal_year: fiscalYear });
}
async createBudget(budgetData) {
if (!budgetData.site_id || !budgetData.name || !budgetData.fiscal_year) {
throw new Error('Missing required fields for budget');
}
return await this.create({
...budgetData,
status: budgetData.status || 'draft',
created_at: new Date().toISOString(),
updated_at: new Date().toISOString()
});
}
}
module.exports = BudgetRepository;