using System.Data.Common; using GB5Shared.DTO.Framework.Login; using GoodBooks.PAY.PAYDAL.DTO.Cashback; namespace GoodBooks.PAY.PAYDAL.CustomCode.Cashback { public interface ICashbackLedgerDAL { Task GetCashbackLedger(int cashbackLedgerId, LoginDTO login); Task GetCashbackLedgerList(int customerId, int pageOffset, int pageSize, LoginDTO login); /// Unpaginated — one order's cashback rows are naturally few. Task GetCashbackLedgerListByOrder(int payOrderId, LoginDTO login); /// /// Fetches the next batch of up to 50 pending cashback rows whose /// ScheduledPayoutOn has passed. Used by the CashbackPayoutJob. /// Task> GetPendingPayouts(LoginDTO login); /// Inserts a new cashback ledger row within the given transaction. Task SaveCashbackLedger(CashbackLedgerDTO dto, LoginDTO login, DbTransaction? tx); /// Updates payout status, retry count, and optional failure reason/voucher ID. Task UpdatePayoutStatus(CashbackLedgerDTO dto, LoginDTO login); } }