using GestionIntegral.Api.Models.Distribucion; using System; using System.Collections.Generic; using System.Data; using System.Threading.Tasks; namespace GestionIntegral.Api.Data.Repositories.Distribucion { public interface IRecargoZonaRepository { Task> GetByPublicacionIdAsync(int idPublicacion); Task GetByIdAsync(int idRecargo); // Para obtener un recargo especĂ­fico Task IsInUseAsync(int idRecargo, DateTime vigenciaD, DateTime? vigenciaH); Task GetActiveByPublicacionZonaAndDateAsync(int idPublicacion, int idZona, DateTime fecha, IDbTransaction? transaction = null); Task CreateAsync(RecargoZona nuevoRecargo, int idUsuario, IDbTransaction transaction); Task UpdateAsync(RecargoZona recargoAActualizar, int idUsuario, IDbTransaction transaction); Task DeleteAsync(int idRecargo, int idUsuario, IDbTransaction transaction); Task DeleteByPublicacionIdAsync(int idPublicacion, int idUsuarioAuditoria, IDbTransaction transaction); // Ya existe Task GetPreviousActiveRecargoAsync(int idPublicacion, int idZona, DateTime vigenciaDNuevo, IDbTransaction transaction); Task> GetHistorialAsync( DateTime? fechaDesde, DateTime? fechaHasta, int? idUsuarioModifico, string? tipoModificacion, int? idRecargoOriginal, int? idPublicacionOriginal, int? idZonaOriginal); } }