using GestionIntegral.Api.Models.Distribucion; using System.Collections.Generic; using System.Threading.Tasks; using System.Data; namespace GestionIntegral.Api.Data.Repositories.Distribucion { public interface ICanillaRepository { Task> GetAllAsync(string? nomApeFilter, int? legajoFilter, bool? soloActivos, bool? esAccionista); 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); // IsInUse no es tan directo, ya que las liquidaciones se marcan. Se podrĂ­a verificar dist_EntradasSalidasCanillas no liquidadas. } }