using Distribution.Models; namespace Distribution.Features.Invoice; public interface IInvoiceRepository { Task GetByIdAsync(Guid id); Task GetByShopPOIdAsync(Guid shopPOId); Task> GetAllAsync(Guid? agentId, Guid? routeId, Guid? shopId, InvoiceStatus? status, PaymentStatus? paymentStatus, int page, int pageSize); Task GetCountAsync(Guid? agentId, Guid? routeId, Guid? shopId, InvoiceStatus? status, PaymentStatus? paymentStatus); Task> GetOutstandingAsync(); Task AddAsync(Models.Invoice invoice); void Update(Models.Invoice invoice); }