package com.braintree.facade.backoffice;

import com.braintree.exceptions.BraintreeErrorException;
import de.hybris.platform.core.model.order.OrderModel;
import de.hybris.platform.ordermanagementfacades.payment.data.PaymentTransactionEntryData;
import de.hybris.platform.payment.model.PaymentTransactionEntryModel;

import java.util.List;

public interface BraintreeBackofficeVoidFacade {

    boolean isVoidPossible(final OrderModel order);

    List<PaymentTransactionEntryModel> getVoidableTransactions(final OrderModel order);

    PaymentTransactionEntryData executeVoid(final PaymentTransactionEntryModel transactionId)
            throws BraintreeErrorException;

    boolean isVoidAuthorizationPossible(final OrderModel order);

}
