import 'package:flutter/foundation.dart'; import '../database/database_helper.dart'; import '../models/factura.dart'; class FacturaProvider extends ChangeNotifier { final DatabaseHelper _db = DatabaseHelper.instance; List _facturas = []; List _facturasVencidas = []; bool _cargando = false; List get facturas => _facturas; List get facturasVencidas => _facturasVencidas; bool get cargando => _cargando; Future cargarFacturas({String? estado, int? servicioId}) async { _cargando = true; notifyListeners(); _facturas = await _db.getFacturas(estado: estado, servicioId: servicioId); _facturasVencidas = await _db.getFacturasVencidas(); _cargando = false; notifyListeners(); } Future agregarFactura(Factura factura) async { await _db.insertFactura(factura); await cargarFacturas(); } Future marcarPagada(int id) async { final factura = _facturas.firstWhere((f) => f.id == id); final hoy = DateTime.now().toIso8601String().split('T')[0]; final actualizada = factura.copyWith(estado: 'Pagada', fechaPago: hoy); await _db.updateFactura(actualizada); await cargarFacturas(); } Future eliminarFactura(int id) async { await _db.deleteFactura(id); await cargarFacturas(); } Future totalGastadoMes(int year, int month) async { return await _db.getTotalGastadoMes(year, month); } Future> gastosPorServicio(int year, int month) async { return await _db.getGastosPorServicio(year, month); } Future>> gastoMensual(int year) async { return await _db.getGastoMensual(year); } Future> facturasPorMes(int year, int month) async { return await _db.getFacturasPorMes(year, month); } Future> facturasPorRango(String inicio, String fin) async { return await _db.getFacturasPorRango(inicio, fin); } }