using Distribution.Models; namespace Distribution.Features.Stock; public interface IStockRepository { // Balance Task GetBalanceAsync(Guid itemId, Guid locationId); Task> GetBalancesAsync(Guid? locationId, LocationType? locationType, Guid? itemId, int page, int pageSize); Task GetBalancesCountAsync(Guid? locationId, LocationType? locationType, Guid? itemId); Task> GetBalancesByItemAsync(Guid itemId); Task AddBalanceAsync(StockBalance balance); void UpdateBalance(StockBalance balance); // Movements Task AddMovementAsync(StockMovement movement); Task> GetMovementsAsync(Guid? locationId, Guid? itemId, MovementType? type, DateTime? from, DateTime? to, int page, int pageSize); Task GetMovementsCountAsync(Guid? locationId, Guid? itemId, MovementType? type, DateTime? from, DateTime? to); }