package com.enactor.training.paymentService.service.messages.gcash;

import com.enactor.core.entities.IEntity;
import com.enactor.core.entities.PropertyValidationException;

/**
 * Add comments for the AmountDetail entity interface here
 */
public interface IAmountDetail extends IEntity {

	
	/**
	 * Set the ChargeAmount
	 *
	 * @param chargeAmount
	 * @throws PropertyValidationException
	 */
	public void setChargeAmount(CurrencyAmount chargeAmount) throws PropertyValidationException;
	
	/**
	 * Get the ChargeAmount
	 *
	 * @return chargeAmount
	 */
	public CurrencyAmount getChargeAmount();
	
	
	/**
	 * Set the ChargebackAmount
	 *
	 * @param chargebackAmount
	 * @throws PropertyValidationException
	 */
	public void setChargebackAmount(CurrencyAmount chargebackAmount) throws PropertyValidationException;
	
	/**
	 * Get the ChargebackAmount
	 *
	 * @return chargebackAmount
	 */
	public CurrencyAmount getChargebackAmount();
	
	
	/**
	 * Set the ConfirmAmount
	 *
	 * @param confirmAmount
	 * @throws PropertyValidationException
	 */
	public void setConfirmAmount(CurrencyAmount confirmAmount) throws PropertyValidationException;
	
	/**
	 * Get the ConfirmAmount
	 *
	 * @return confirmAmount
	 */
	public CurrencyAmount getConfirmAmount();
	
	
	/**
	 * Set the OrderAmount
	 *
	 * @param orderAmount
	 * @throws PropertyValidationException
	 */
	public void setOrderAmount(CurrencyAmount orderAmount) throws PropertyValidationException;
	
	/**
	 * Get the OrderAmount
	 *
	 * @return orderAmount
	 */
	public CurrencyAmount getOrderAmount();
	
	
	/**
	 * Set the PayAmount
	 *
	 * @param payAmount
	 * @throws PropertyValidationException
	 */
	public void setPayAmount(CurrencyAmount payAmount) throws PropertyValidationException;
	
	/**
	 * Get the PayAmount
	 *
	 * @return payAmount
	 */
	public CurrencyAmount getPayAmount();
	
	
	/**
	 * Set the RefundAmount
	 *
	 * @param refundAmount
	 * @throws PropertyValidationException
	 */
	public void setRefundAmount(CurrencyAmount refundAmount) throws PropertyValidationException;
	
	/**
	 * Get the RefundAmount
	 *
	 * @return refundAmount
	 */
	public CurrencyAmount getRefundAmount();
	
	
	/**
	 * Set the VoidAmount
	 *
	 * @param voidAmount
	 * @throws PropertyValidationException
	 */
	public void setVoidAmount(CurrencyAmount voidAmount) throws PropertyValidationException;
	
	/**
	 * Get the VoidAmount
	 *
	 * @return voidAmount
	 */
	public CurrencyAmount getVoidAmount();
	
	
}
