using GestionIntegral.Api.Models.Suscripciones; using System.Data; namespace GestionIntegral.Api.Data.Repositories.Suscripciones { public interface IFacturaRepository { Task GetByIdAsync(int idFactura); Task> GetByPeriodoAsync(string periodo); Task GetBySuscriptorYPeriodoAsync(int idSuscriptor, string periodo, IDbTransaction transaction); Task> GetListBySuscriptorYPeriodoAsync(int idSuscriptor, string periodo); Task> GetFacturasConEmpresaAsync(int idSuscriptor, string periodo); Task CreateAsync(Factura nuevaFactura, IDbTransaction transaction); Task UpdateEstadoPagoAsync(int idFactura, string nuevoEstadoPago, IDbTransaction transaction); Task UpdateNumeroFacturaAsync(int idFactura, string numeroFactura, IDbTransaction transaction); Task UpdateLoteDebitoAsync(IEnumerable idsFacturas, int idLoteDebito, IDbTransaction transaction); Task> GetByPeriodoEnrichedAsync(string periodo, string? nombreSuscriptor, string? estadoPago, string? estadoFacturacion); Task UpdateEstadoYMotivoAsync(int idFactura, string nuevoEstadoPago, string? motivoRechazo, IDbTransaction transaction); Task GetUltimoPeriodoFacturadoAsync(); Task> GetFacturasPagadasPendientesDeFacturar(string periodo); } }