using System.Data;

namespace GestionIntegral.Api.Data.Repositories.Suscripciones
{
    public interface IFacturaDetalleRepository
    {
        /// <summary>
        /// Crea un nuevo registro de detalle de factura.
        /// </summary>
        Task<FacturaDetalle?> CreateAsync(FacturaDetalle nuevoDetalle, IDbTransaction transaction);

        /// <summary>
        /// Obtiene todos los detalles de una factura específica.
        /// </summary>
        Task<IEnumerable<FacturaDetalle>> GetDetallesPorFacturaIdAsync(int idFactura);
        
        /// <summary>
        /// Obtiene de forma eficiente todos los detalles de todas las facturas de un período específico.
        /// </summary>
        Task<IEnumerable<FacturaDetalle>> GetDetallesPorPeriodoAsync(string periodo);
    }
}