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;