using GestionIntegral.Api.Dtos.Reportes; using GestionIntegral.Api.Models.Distribucion; using System; using System.Collections.Generic; using System.Data; // Para IDbTransaction using System.Threading.Tasks; namespace GestionIntegral.Api.Data.Repositories.Distribucion { public interface INovedadCanillaRepository { // Para obtener novedades y el nombre del canillita Task> GetByCanillaAsync(int idCanilla, DateTime? fechaDesde, DateTime? fechaHasta); Task GetByIdAsync(int idNovedad); Task CreateAsync(NovedadCanilla novedad, int idUsuario, IDbTransaction? transaction = null); Task UpdateAsync(NovedadCanilla novedad, int idUsuario, IDbTransaction? transaction = null); Task DeleteAsync(int idNovedad, int idUsuario, IDbTransaction? transaction = null); // Podrías añadir un método para verificar si existe una novedad para un canillita en una fecha específica si es necesario Task ExistsByCanillaAndFechaAsync(int idCanilla, DateTime fecha, int? excludeIdNovedad = null); Task> GetReporteNovedadesAsync(int idEmpresa, DateTime fechaDesde, DateTime fechaHasta); Task> GetReporteGananciasAsync(int idEmpresa, DateTime fechaDesde, DateTime fechaHasta); } }