using GestionIntegral.Api.Models.Distribucion; using System.Collections.Generic; using System.Threading.Tasks; using System.Data; using GestionIntegral.Api.Dtos.Distribucion; namespace GestionIntegral.Api.Data.Repositories.Distribucion { public interface IDistribuidorRepository { Task> GetAllAsync(string? nombreFilter, string? nroDocFilter); Task<(Distribuidor? Distribuidor, string? NombreZona)> GetByIdAsync(int id); Task GetByIdSimpleAsync(int id); // Para uso interno en el servicio Task CreateAsync(Distribuidor nuevoDistribuidor, int idUsuario, IDbTransaction transaction); Task UpdateAsync(Distribuidor distribuidorAActualizar, int idUsuario, IDbTransaction transaction); Task DeleteAsync(int id, int idUsuario, IDbTransaction transaction); Task ExistsByNroDocAsync(string nroDoc, int? excludeIdDistribuidor = null); Task ExistsByNameAsync(string nombre, int? excludeIdDistribuidor = null); Task IsInUseAsync(int id); // Verificar en dist_EntradasSalidas, cue_PagosDistribuidor, dist_PorcPago Task> GetAllDropdownAsync(); Task ObtenerLookupPorIdAsync(int id); Task> GetHistorialAsync( DateTime? fechaDesde, DateTime? fechaHasta, int? idUsuarioModifico, string? tipoModificacion, int? idDistribuidorOriginal); } }