namespace Distribution.Features.Order; public interface IOrderRepository { Task GetByIdAsync(Guid id); Task> GetAllAsync(); Task GetBySaleIdAsync(Guid saleId); Task AddAsync(Models.Order entity); void Update(Models.Order entity); void Remove(Models.Order entity); Task> GetItemsByOrderIdAsync(Guid orderId, bool includeHistory = false); Task> GetByStoreIdAsync(Guid storeId); Task AddItemsAsync(IEnumerable items); Task> GetPendingByRouteIdAsync(Guid routeId); /// Confirmed POs (ConfirmedAt set, not cancelled) matching the optional filters — /// backs Mode B's "office browses Confirmed POs" step per order_invoice_lifecycle.md. Task> GetConfirmedAsync(Guid? agentId, Guid? routeId, Guid? storeId); }