using GB5Shared.DTO.Framework.Login; namespace GoodBooks.PAY.PAYBLL.Checkout { public interface IPayOrderBLL { Task GetPayOrder(int payOrderId, LoginDTO login, CancellationToken ct); Task GetPayOrderList(int pageOffset, int pageSize, LoginDTO login, CancellationToken ct); /// Entitlement↔Payment loose coupling (§9.1) — payment history for one /// (SourceDocType, SourceDocId) pair, newest first. Task GetPayOrdersBySourceDoc(int sourceDocType, int sourceDocId, LoginDTO login, CancellationToken ct); /// /// Creates a payment order end-to-end: /// validates inputs → checks for duplicates → validates coupon/loyalty → /// computes net payable → DB insert → calls gateway CreateOrder → /// DB update with gateway order ID → returns CheckoutUrl (or null for COD). /// Task InitiatePayOrder(InitiatePayOrderRequest request, LoginDTO login, CancellationToken ct); } }