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

import java.util.Date;
import java.util.List;

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

/**
 * Add comments for the MessageBody entity interface here
 */
public interface IMessageBody extends IEntity {

	
	/**
	 * Set the AcquirementId
	 *
	 * @param acquirementId
	 * @throws PropertyValidationException
	 */
	public void setAcquirementId(String acquirementId) throws PropertyValidationException;
	
	/**
	 * Get the AcquirementId
	 *
	 * @return acquirementId
	 */
	public String getAcquirementId();
	
	
	/**
	 * Set the AmountDetail
	 *
	 * @param amountDetail
	 * @throws PropertyValidationException
	 */
	public void setAmountDetail(AmountDetail amountDetail) throws PropertyValidationException;
	
	/**
	 * Get the AmountDetail
	 *
	 * @return amountDetail
	 */
	public AmountDetail getAmountDetail();
	
	
	/**
	 * Set the AuthCode
	 *
	 * @param authCode
	 * @throws PropertyValidationException
	 */
	public void setAuthCode(String authCode) throws PropertyValidationException;
	
	/**
	 * Get the AuthCode
	 *
	 * @return authCode
	 */
	public String getAuthCode();
	
	
	/**
	 * Set the AuthCodeType
	 *
	 * @param authCodeType
	 * @throws PropertyValidationException
	 */
	public void setAuthCodeType(String authCodeType) throws PropertyValidationException;
	
	/**
	 * Get the AuthCodeType
	 *
	 * @return authCodeType
	 */
	public String getAuthCodeType();
	
	
	/**
	 * Set the Buyer
	 *
	 * @param buyer
	 * @throws PropertyValidationException
	 */
	public void setBuyer(User buyer) throws PropertyValidationException;
	
	/**
	 * Get the Buyer
	 *
	 * @return buyer
	 */
	public User getBuyer();
	
	
	/**
	 * Set the CreateTime
	 *
	 * @param createTime
	 * @throws PropertyValidationException
	 */
	public void setCreateTime(Date createTime) throws PropertyValidationException;
	
	/**
	 * Get the CreateTime
	 *
	 * @return createTime
	 */
	public Date getCreateTime();
	
	
	/**
	 * Set the EnvInfo
	 *
	 * @param envInfo
	 * @throws PropertyValidationException
	 */
	public void setEnvInfo(EnvInfo envInfo) throws PropertyValidationException;
	
	/**
	 * Get the EnvInfo
	 *
	 * @return envInfo
	 */
	public EnvInfo getEnvInfo();
	
	
	/**
	 * Set the MerchantId
	 *
	 * @param merchantId
	 * @throws PropertyValidationException
	 */
	public void setMerchantId(String merchantId) throws PropertyValidationException;
	
	/**
	 * Get the MerchantId
	 *
	 * @return merchantId
	 */
	public String getMerchantId();
	
	
	/**
	 * Set the MerchantTransId
	 *
	 * @param merchantTransId
	 * @throws PropertyValidationException
	 */
	public void setMerchantTransId(String merchantTransId) throws PropertyValidationException;
	
	/**
	 * Get the MerchantTransId
	 *
	 * @return merchantTransId
	 */
	public String getMerchantTransId();
	
	
	/**
	 * Set the Order
	 *
	 * @param order
	 * @throws PropertyValidationException
	 */
	public void setOrder(com.enactor.training.paymentService.service.messages.gcash.Order order) throws PropertyValidationException;
	
	/**
	 * Get the Order
	 *
	 * @return order
	 */
	public com.enactor.training.paymentService.service.messages.gcash.Order getOrder();
	
	
	/**
	 * Set the OrderAmount
	 *
	 * @param orderAmount
	 * @throws PropertyValidationException
	 */
	public void setOrderAmount(CurrencyAmount orderAmount) throws PropertyValidationException;
	
	/**
	 * Get the OrderAmount
	 *
	 * @return orderAmount
	 */
	public CurrencyAmount getOrderAmount();
	
	
	/**
	 * Set the OrderTitle
	 *
	 * @param orderTitle
	 * @throws PropertyValidationException
	 */
	public void setOrderTitle(String orderTitle) throws PropertyValidationException;
	
	/**
	 * Get the OrderTitle
	 *
	 * @return orderTitle
	 */
	public String getOrderTitle();
	
	
	/**
	 * Set the PaidTime
	 *
	 * @param paidTime
	 * @throws PropertyValidationException
	 */
	public void setPaidTime(Date paidTime) throws PropertyValidationException;
	
	/**
	 * Get the PaidTime
	 *
	 * @return paidTime
	 */
	public Date getPaidTime();
	
	
	/**
	 * Set the PaymentViews
	 *
	 * @param paymentViews
	 * @throws PropertyValidationException
	 */
	public void setPaymentViews(List<PaymentView> paymentViews) throws PropertyValidationException;
	
	/**
	 * Get the PaymentViews
	 *
	 * @return paymentViews
	 */
	public List<PaymentView> getPaymentViews();
	
	
	/**
	 * Set the ResultInfo
	 *
	 * @param resultInfo
	 * @throws PropertyValidationException
	 */
	public void setResultInfo(ResultInfo resultInfo) throws PropertyValidationException;
	
	/**
	 * Get the ResultInfo
	 *
	 * @return resultInfo
	 */
	public ResultInfo getResultInfo();
	
	
	/**
	 * Set the Seller
	 *
	 * @param seller
	 * @throws PropertyValidationException
	 */
	public void setSeller(com.enactor.training.paymentService.service.messages.gcash.User seller) throws PropertyValidationException;
	
	/**
	 * Get the Seller
	 *
	 * @return seller
	 */
	public com.enactor.training.paymentService.service.messages.gcash.User getSeller();
	
	
	/**
	 * Set the StatusDetail
	 *
	 * @param statusDetail
	 * @throws PropertyValidationException
	 */
	public void setStatusDetail(StatusDetail statusDetail) throws PropertyValidationException;
	
	/**
	 * Get the StatusDetail
	 *
	 * @return statusDetail
	 */
	public StatusDetail getStatusDetail();
	
	
	/**
	 * Set the TimeDetail
	 *
	 * @param timeDetail
	 * @throws PropertyValidationException
	 */
	public void setTimeDetail(TimeDetail timeDetail) throws PropertyValidationException;
	
	/**
	 * Get the TimeDetail
	 *
	 * @return timeDetail
	 */
	public TimeDetail getTimeDetail();
	
	
	/**
	 * Set the Transactionid
	 *
	 * @param transactionid
	 * @throws PropertyValidationException
	 */
	public void setTransactionid(String transactionid) throws PropertyValidationException;
	
	/**
	 * Get the Transactionid
	 *
	 * @return transactionid
	 */
	public String getTransactionid();
	
	
	/**
	 * Set the ScannerInfo
	 *
	 * @param scannerInfo
	 * @throws PropertyValidationException
	 */
	public void setScannerInfo(ScannerInfo scannerInfo) throws PropertyValidationException;
	
	/**
	 * Get the ScannerInfo
	 *
	 * @return scannerInfo
	 */
	public ScannerInfo getScannerInfo();
	
	
	/**
	 * Set the ShopInfo
	 *
	 * @param shopInfo
	 * @throws PropertyValidationException
	 */
	public void setShopInfo(ShopInfo shopInfo) throws PropertyValidationException;
	
	/**
	 * Get the ShopInfo
	 *
	 * @return shopInfo
	 */
	public ShopInfo getShopInfo();
	
	public String getProductCode();
	
	public void setProductCode(String productCode);
	
	
}
