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 ICanillaRepository { Task> GetAllAsync(string? nomApeFilter, int? legajoFilter, bool? soloActivos, bool? esAccionista); Task> GetAllDropdownAsync(bool? esAccionista, bool? soloActivos); Task<(Canilla? Canilla, string? NombreZona, string? NombreEmpresa)> GetByIdAsync(int id); Task GetByIdSimpleAsync(int id); // Para obtener solo la entidad Canilla Task CreateAsync(Canilla nuevoCanilla, int idUsuario, IDbTransaction transaction); Task UpdateAsync(Canilla canillaAActualizar, int idUsuario, IDbTransaction transaction); Task ToggleBajaAsync(int id, bool darDeBaja, DateTime? fechaBaja, int idUsuario, IDbTransaction transaction); Task ExistsByLegajoAsync(int legajo, int? excludeIdCanilla = null); Task> GetHistorialAsync( DateTime? fechaDesde, DateTime? fechaHasta, int? idUsuarioModifico, string? tipoModificacion, int? idCanillaOriginal); // Para filtrar por un canillita especĂ­fico } }