namespace CashLineERP.Application.Finance;

public interface IAccountsPayablePaymentRepository
{
    IReadOnlyCollection<AccountsPayablePaymentDetailView> GetPayments();

    AccountsPayablePaymentDetailView? GetPayment(long accountsPayablePaymentId);

    AccountsPayablePaymentDetailView Create(CreateAccountsPayablePaymentCommand command);

    AccountsPayablePaymentDetailView Submit(long accountsPayablePaymentId, long actorUserId);

    AccountsPayablePaymentDetailView Approve(long accountsPayablePaymentId, long actorUserId);

    AccountsPayablePaymentDetailView Post(long accountsPayablePaymentId, long actorUserId);

    AccountsPayablePaymentDetailView Reverse(long accountsPayablePaymentId, long actorUserId, ReverseAccountsPayablePaymentCommand command);

    AccountsPayablePaymentDetailView Repost(long accountsPayablePaymentId, long actorUserId, RepostAccountsPayablePaymentCommand command);
}
