package api.unicore.component;
 
import static api.util.ComponentConstants.BOOLEAN_NULL;
import static api.util.ComponentConstants.BOOLEAN_NULL_CODE;
import static api.util.ComponentConstants.INTEGER_NULL;
import static api.util.ComponentConstants.INTEGER_NULL_CODE;
import static org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion.NON_NULL;
 
import api.UnoComponent;
import api.unicore.component_manual.CustomerFees;
import api.util.BooleanFormat;
import api.util.IntegerFormat;
import iapp.services.ServerObject;
import iapp.util.audit.AuditHelper;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.FormParam;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.codehaus.jackson.annotate.JsonPropertyOrder;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;
 
/**
 * @author CodeGen [Liza Zhydok]
 * @company UnitedThinkers
 * @since 2014/12/24
 */
 
@JsonSerialize(include=NON_NULL)
@XmlType(propOrder={"enrollmentFeeRegular", "enrollmentFeeThreshold", "enrollmentFeeHighTicket", "softDeclineFeeRegular", "softDeclineFeeThreshold", "softDeclineFeeHighTicket", "hardDeclineFeeRegular", "hardDeclineFeeThreshold", "hardDeclineFeeHighTicket", "retryFeeRegular", "retryFeeThreshold", "retryFeeHighTicket", "chargebackFeeRegular", "chargebackFeeThreshold", "chargebackFeeHighTicket", "statementFeeRegular", "statementFeeThreshold", "statementFeeHighTicket", "freezeRecurringFeeRegular", "freezeRecurringFeeThreshold", "freezeRecurringFeeHighTicket", "freezeFlatFeeRegular", "freezeFlatFeeThreshold", "freezeFlatFeeHighTicket", "returnFeeRegular", "returnFeeThreshold", "returnFeeHighTicket", "lateFeeRegular", "lateFeeThreshold", "lateFeeHighTicket", "merchantAccountCode", "isApplyLateFeeInCollections", "latePeriod", "documentAccessFee", "documentAccessInterval", "declineLimit"})
@JsonPropertyOrder({"enrollmentFeeRegular", "enrollmentFeeThreshold", "enrollmentFeeHighTicket", "softDeclineFeeRegular", "softDeclineFeeThreshold", "softDeclineFeeHighTicket", "hardDeclineFeeRegular", "hardDeclineFeeThreshold", "hardDeclineFeeHighTicket", "retryFeeRegular", "retryFeeThreshold", "retryFeeHighTicket", "chargebackFeeRegular", "chargebackFeeThreshold", "chargebackFeeHighTicket", "statementFeeRegular", "statementFeeThreshold", "statementFeeHighTicket", "freezeRecurringFeeRegular", "freezeRecurringFeeThreshold", "freezeRecurringFeeHighTicket", "freezeFlatFeeRegular", "freezeFlatFeeThreshold", "freezeFlatFeeHighTicket", "returnFeeRegular", "returnFeeThreshold", "returnFeeHighTicket", "lateFeeRegular", "lateFeeThreshold", "lateFeeHighTicket", "merchantAccountCode", "isApplyLateFeeInCollections", "latePeriod", "documentAccessFee", "documentAccessInterval", "declineLimit"})
@XmlAccessorType(XmlAccessType.NONE)
@XmlSeeAlso(CustomerFees.class)
public abstract class AbstractCustomerFees extends UnoComponent<unicore.model.Merchant> {
 
    @FormParam("enrollmentFeeRegular")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer enrollmentFeeRegular;
 
    @FormParam("enrollmentFeeThreshold")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer enrollmentFeeThreshold;
 
    @FormParam("enrollmentFeeHighTicket")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer enrollmentFeeHighTicket;
 
    @FormParam("softDeclineFeeRegular")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer softDeclineFeeRegular;
 
    @FormParam("softDeclineFeeThreshold")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer softDeclineFeeThreshold;
 
    @FormParam("softDeclineFeeHighTicket")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer softDeclineFeeHighTicket;
 
    @FormParam("hardDeclineFeeRegular")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer hardDeclineFeeRegular;
 
    @FormParam("hardDeclineFeeThreshold")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer hardDeclineFeeThreshold;
 
    @FormParam("hardDeclineFeeHighTicket")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer hardDeclineFeeHighTicket;
 
    @FormParam("retryFeeRegular")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer retryFeeRegular;
 
    @FormParam("retryFeeThreshold")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer retryFeeThreshold;
 
    @FormParam("retryFeeHighTicket")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer retryFeeHighTicket;
 
    @FormParam("chargebackFeeRegular")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer chargebackFeeRegular;
 
    @FormParam("chargebackFeeThreshold")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer chargebackFeeThreshold;
 
    @FormParam("chargebackFeeHighTicket")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer chargebackFeeHighTicket;
 
    @FormParam("statementFeeRegular")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer statementFeeRegular;
 
    @FormParam("statementFeeThreshold")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer statementFeeThreshold;
 
    @FormParam("statementFeeHighTicket")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer statementFeeHighTicket;
 
    @FormParam("freezeRecurringFeeRegular")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer freezeRecurringFeeRegular;
 
    @FormParam("freezeRecurringFeeThreshold")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer freezeRecurringFeeThreshold;
 
    @FormParam("freezeRecurringFeeHighTicket")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer freezeRecurringFeeHighTicket;
 
    @FormParam("freezeFlatFeeRegular")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer freezeFlatFeeRegular;
 
    @FormParam("freezeFlatFeeThreshold")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer freezeFlatFeeThreshold;
 
    @FormParam("freezeFlatFeeHighTicket")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer freezeFlatFeeHighTicket;
 
    @FormParam("returnFeeRegular")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer returnFeeRegular;
 
    @FormParam("returnFeeThreshold")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer returnFeeThreshold;
 
    @FormParam("returnFeeHighTicket")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer returnFeeHighTicket;
 
    @FormParam("lateFeeRegular")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer lateFeeRegular;
 
    @FormParam("lateFeeThreshold")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer lateFeeThreshold;
 
    @FormParam("lateFeeHighTicket")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer lateFeeHighTicket;
 
    @FormParam("merchantAccountCode")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer merchantAccountCode;
 
    @FormParam("isApplyLateFeeInCollections")
    @BooleanFormat
    @DefaultValue(BOOLEAN_NULL_CODE)
    protected Boolean isApplyLateFeeInCollections;
 
    @FormParam("latePeriod")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer latePeriod;
 
    @FormParam("documentAccessFee")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer documentAccessFee;
 
    @FormParam("documentAccessInterval")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer documentAccessInterval;
 
    @FormParam("declineLimit")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer declineLimit;
 
 
    public AbstractCustomerFees(){
        super();
        applyDefaults();
    }
 
    public AbstractCustomerFees(unicore.model.Merchant object){
        super(object);
    }
 
 
    private void applyDefaults() {
        if (!isProxyObject()) {
            enrollmentFeeRegular = INTEGER_NULL;
            enrollmentFeeThreshold = INTEGER_NULL;
            enrollmentFeeHighTicket = INTEGER_NULL;
            softDeclineFeeRegular = INTEGER_NULL;
            softDeclineFeeThreshold = INTEGER_NULL;
            softDeclineFeeHighTicket = INTEGER_NULL;
            hardDeclineFeeRegular = INTEGER_NULL;
            hardDeclineFeeThreshold = INTEGER_NULL;
            hardDeclineFeeHighTicket = INTEGER_NULL;
            retryFeeRegular = INTEGER_NULL;
            retryFeeThreshold = INTEGER_NULL;
            retryFeeHighTicket = INTEGER_NULL;
            chargebackFeeRegular = INTEGER_NULL;
            chargebackFeeThreshold = INTEGER_NULL;
            chargebackFeeHighTicket = INTEGER_NULL;
            statementFeeRegular = INTEGER_NULL;
            statementFeeThreshold = INTEGER_NULL;
            statementFeeHighTicket = INTEGER_NULL;
            freezeRecurringFeeRegular = INTEGER_NULL;
            freezeRecurringFeeThreshold = INTEGER_NULL;
            freezeRecurringFeeHighTicket = INTEGER_NULL;
            freezeFlatFeeRegular = INTEGER_NULL;
            freezeFlatFeeThreshold = INTEGER_NULL;
            freezeFlatFeeHighTicket = INTEGER_NULL;
            returnFeeRegular = INTEGER_NULL;
            returnFeeThreshold = INTEGER_NULL;
            returnFeeHighTicket = INTEGER_NULL;
            lateFeeRegular = INTEGER_NULL;
            lateFeeThreshold = INTEGER_NULL;
            lateFeeHighTicket = INTEGER_NULL;
            merchantAccountCode = INTEGER_NULL;
            isApplyLateFeeInCollections = BOOLEAN_NULL;
            latePeriod = INTEGER_NULL;
            documentAccessFee = INTEGER_NULL;
            documentAccessInterval = INTEGER_NULL;
            declineLimit = INTEGER_NULL;
        }
    }
 
    @Override
    public void from() {
        fromInternal();
        super.from();
    }
 
    protected abstract void fromInternal();
    @Override
    public abstract void to();
    @Override
    public abstract void initializeNew();
 
    @Override
    public String toString(){
        StringBuilder sb = new StringBuilder();
        sb.append("customerFees: {");
        sb.append("enrollmentFeeRegular: ");
        sb.append(enrollmentFeeRegular);
        sb.append(',').append(' ');
        sb.append("enrollmentFeeThreshold: ");
        sb.append(enrollmentFeeThreshold);
        sb.append(',').append(' ');
        sb.append("enrollmentFeeHighTicket: ");
        sb.append(enrollmentFeeHighTicket);
        sb.append(',').append(' ');
        sb.append("softDeclineFeeRegular: ");
        sb.append(softDeclineFeeRegular);
        sb.append(',').append(' ');
        sb.append("softDeclineFeeThreshold: ");
        sb.append(softDeclineFeeThreshold);
        sb.append(',').append(' ');
        sb.append("softDeclineFeeHighTicket: ");
        sb.append(softDeclineFeeHighTicket);
        sb.append(',').append(' ');
        sb.append("hardDeclineFeeRegular: ");
        sb.append(hardDeclineFeeRegular);
        sb.append(',').append(' ');
        sb.append("hardDeclineFeeThreshold: ");
        sb.append(hardDeclineFeeThreshold);
        sb.append(',').append(' ');
        sb.append("hardDeclineFeeHighTicket: ");
        sb.append(hardDeclineFeeHighTicket);
        sb.append(',').append(' ');
        sb.append("retryFeeRegular: ");
        sb.append(retryFeeRegular);
        sb.append(',').append(' ');
        sb.append("retryFeeThreshold: ");
        sb.append(retryFeeThreshold);
        sb.append(',').append(' ');
        sb.append("retryFeeHighTicket: ");
        sb.append(retryFeeHighTicket);
        sb.append(',').append(' ');
        sb.append("chargebackFeeRegular: ");
        sb.append(chargebackFeeRegular);
        sb.append(',').append(' ');
        sb.append("chargebackFeeThreshold: ");
        sb.append(chargebackFeeThreshold);
        sb.append(',').append(' ');
        sb.append("chargebackFeeHighTicket: ");
        sb.append(chargebackFeeHighTicket);
        sb.append(',').append(' ');
        sb.append("statementFeeRegular: ");
        sb.append(statementFeeRegular);
        sb.append(',').append(' ');
        sb.append("statementFeeThreshold: ");
        sb.append(statementFeeThreshold);
        sb.append(',').append(' ');
        sb.append("statementFeeHighTicket: ");
        sb.append(statementFeeHighTicket);
        sb.append(',').append(' ');
        sb.append("freezeRecurringFeeRegular: ");
        sb.append(freezeRecurringFeeRegular);
        sb.append(',').append(' ');
        sb.append("freezeRecurringFeeThreshold: ");
        sb.append(freezeRecurringFeeThreshold);
        sb.append(',').append(' ');
        sb.append("freezeRecurringFeeHighTicket: ");
        sb.append(freezeRecurringFeeHighTicket);
        sb.append(',').append(' ');
        sb.append("freezeFlatFeeRegular: ");
        sb.append(freezeFlatFeeRegular);
        sb.append(',').append(' ');
        sb.append("freezeFlatFeeThreshold: ");
        sb.append(freezeFlatFeeThreshold);
        sb.append(',').append(' ');
        sb.append("freezeFlatFeeHighTicket: ");
        sb.append(freezeFlatFeeHighTicket);
        sb.append(',').append(' ');
        sb.append("returnFeeRegular: ");
        sb.append(returnFeeRegular);
        sb.append(',').append(' ');
        sb.append("returnFeeThreshold: ");
        sb.append(returnFeeThreshold);
        sb.append(',').append(' ');
        sb.append("returnFeeHighTicket: ");
        sb.append(returnFeeHighTicket);
        sb.append(',').append(' ');
        sb.append("lateFeeRegular: ");
        sb.append(lateFeeRegular);
        sb.append(',').append(' ');
        sb.append("lateFeeThreshold: ");
        sb.append(lateFeeThreshold);
        sb.append(',').append(' ');
        sb.append("lateFeeHighTicket: ");
        sb.append(lateFeeHighTicket);
        sb.append(',').append(' ');
        sb.append("merchantAccountCode: ");
        sb.append(merchantAccountCode);
        sb.append(',').append(' ');
        sb.append("isApplyLateFeeInCollections: ");
        sb.append(isApplyLateFeeInCollections);
        sb.append(',').append(' ');
        sb.append("latePeriod: ");
        sb.append(latePeriod);
        sb.append(',').append(' ');
        sb.append("documentAccessFee: ");
        sb.append(documentAccessFee);
        sb.append(',').append(' ');
        sb.append("documentAccessInterval: ");
        sb.append(documentAccessInterval);
        sb.append(',').append(' ');
        sb.append("declineLimit: ");
        sb.append(declineLimit);
        sb.append('}');
        return sb.toString();
    }
 
 
    @XmlAttribute(name="enrollmentFeeRegular")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("enrollmentFeeRegular")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getEnrollmentFeeRegular(){
        return enrollmentFeeRegular;
    }
 
    public void setEnrollmentFeeRegular(Integer value){
        this.enrollmentFeeRegular = value;
    }
 
    @XmlAttribute(name="enrollmentFeeThreshold")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("enrollmentFeeThreshold")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getEnrollmentFeeThreshold(){
        return enrollmentFeeThreshold;
    }
 
    public void setEnrollmentFeeThreshold(Integer value){
        this.enrollmentFeeThreshold = value;
    }
 
    @XmlAttribute(name="enrollmentFeeHighTicket")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("enrollmentFeeHighTicket")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getEnrollmentFeeHighTicket(){
        return enrollmentFeeHighTicket;
    }
 
    public void setEnrollmentFeeHighTicket(Integer value){
        this.enrollmentFeeHighTicket = value;
    }
 
    @XmlAttribute(name="softDeclineFeeRegular")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("softDeclineFeeRegular")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getSoftDeclineFeeRegular(){
        return softDeclineFeeRegular;
    }
 
    public void setSoftDeclineFeeRegular(Integer value){
        this.softDeclineFeeRegular = value;
    }
 
    @XmlAttribute(name="softDeclineFeeThreshold")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("softDeclineFeeThreshold")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getSoftDeclineFeeThreshold(){
        return softDeclineFeeThreshold;
    }
 
    public void setSoftDeclineFeeThreshold(Integer value){
        this.softDeclineFeeThreshold = value;
    }
 
    @XmlAttribute(name="softDeclineFeeHighTicket")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("softDeclineFeeHighTicket")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getSoftDeclineFeeHighTicket(){
        return softDeclineFeeHighTicket;
    }
 
    public void setSoftDeclineFeeHighTicket(Integer value){
        this.softDeclineFeeHighTicket = value;
    }
 
    @XmlAttribute(name="hardDeclineFeeRegular")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("hardDeclineFeeRegular")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getHardDeclineFeeRegular(){
        return hardDeclineFeeRegular;
    }
 
    public void setHardDeclineFeeRegular(Integer value){
        this.hardDeclineFeeRegular = value;
    }
 
    @XmlAttribute(name="hardDeclineFeeThreshold")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("hardDeclineFeeThreshold")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getHardDeclineFeeThreshold(){
        return hardDeclineFeeThreshold;
    }
 
    public void setHardDeclineFeeThreshold(Integer value){
        this.hardDeclineFeeThreshold = value;
    }
 
    @XmlAttribute(name="hardDeclineFeeHighTicket")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("hardDeclineFeeHighTicket")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getHardDeclineFeeHighTicket(){
        return hardDeclineFeeHighTicket;
    }
 
    public void setHardDeclineFeeHighTicket(Integer value){
        this.hardDeclineFeeHighTicket = value;
    }
 
    @XmlAttribute(name="retryFeeRegular")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("retryFeeRegular")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getRetryFeeRegular(){
        return retryFeeRegular;
    }
 
    public void setRetryFeeRegular(Integer value){
        this.retryFeeRegular = value;
    }
 
    @XmlAttribute(name="retryFeeThreshold")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("retryFeeThreshold")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getRetryFeeThreshold(){
        return retryFeeThreshold;
    }
 
    public void setRetryFeeThreshold(Integer value){
        this.retryFeeThreshold = value;
    }
 
    @XmlAttribute(name="retryFeeHighTicket")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("retryFeeHighTicket")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getRetryFeeHighTicket(){
        return retryFeeHighTicket;
    }
 
    public void setRetryFeeHighTicket(Integer value){
        this.retryFeeHighTicket = value;
    }
 
    @XmlAttribute(name="chargebackFeeRegular")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("chargebackFeeRegular")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getChargebackFeeRegular(){
        return chargebackFeeRegular;
    }
 
    public void setChargebackFeeRegular(Integer value){
        this.chargebackFeeRegular = value;
    }
 
    @XmlAttribute(name="chargebackFeeThreshold")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("chargebackFeeThreshold")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getChargebackFeeThreshold(){
        return chargebackFeeThreshold;
    }
 
    public void setChargebackFeeThreshold(Integer value){
        this.chargebackFeeThreshold = value;
    }
 
    @XmlAttribute(name="chargebackFeeHighTicket")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("chargebackFeeHighTicket")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getChargebackFeeHighTicket(){
        return chargebackFeeHighTicket;
    }
 
    public void setChargebackFeeHighTicket(Integer value){
        this.chargebackFeeHighTicket = value;
    }
 
    @XmlAttribute(name="statementFeeRegular")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("statementFeeRegular")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getStatementFeeRegular(){
        return statementFeeRegular;
    }
 
    public void setStatementFeeRegular(Integer value){
        this.statementFeeRegular = value;
    }
 
    @XmlAttribute(name="statementFeeThreshold")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("statementFeeThreshold")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getStatementFeeThreshold(){
        return statementFeeThreshold;
    }
 
    public void setStatementFeeThreshold(Integer value){
        this.statementFeeThreshold = value;
    }
 
    @XmlAttribute(name="statementFeeHighTicket")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("statementFeeHighTicket")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getStatementFeeHighTicket(){
        return statementFeeHighTicket;
    }
 
    public void setStatementFeeHighTicket(Integer value){
        this.statementFeeHighTicket = value;
    }
 
    @XmlAttribute(name="freezeRecurringFeeRegular")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("freezeRecurringFeeRegular")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getFreezeRecurringFeeRegular(){
        return freezeRecurringFeeRegular;
    }
 
    public void setFreezeRecurringFeeRegular(Integer value){
        this.freezeRecurringFeeRegular = value;
    }
 
    @XmlAttribute(name="freezeRecurringFeeThreshold")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("freezeRecurringFeeThreshold")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getFreezeRecurringFeeThreshold(){
        return freezeRecurringFeeThreshold;
    }
 
    public void setFreezeRecurringFeeThreshold(Integer value){
        this.freezeRecurringFeeThreshold = value;
    }
 
    @XmlAttribute(name="freezeRecurringFeeHighTicket")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("freezeRecurringFeeHighTicket")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getFreezeRecurringFeeHighTicket(){
        return freezeRecurringFeeHighTicket;
    }
 
    public void setFreezeRecurringFeeHighTicket(Integer value){
        this.freezeRecurringFeeHighTicket = value;
    }
 
    @XmlAttribute(name="freezeFlatFeeRegular")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("freezeFlatFeeRegular")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getFreezeFlatFeeRegular(){
        return freezeFlatFeeRegular;
    }
 
    public void setFreezeFlatFeeRegular(Integer value){
        this.freezeFlatFeeRegular = value;
    }
 
    @XmlAttribute(name="freezeFlatFeeThreshold")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("freezeFlatFeeThreshold")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getFreezeFlatFeeThreshold(){
        return freezeFlatFeeThreshold;
    }
 
    public void setFreezeFlatFeeThreshold(Integer value){
        this.freezeFlatFeeThreshold = value;
    }
 
    @XmlAttribute(name="freezeFlatFeeHighTicket")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("freezeFlatFeeHighTicket")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getFreezeFlatFeeHighTicket(){
        return freezeFlatFeeHighTicket;
    }
 
    public void setFreezeFlatFeeHighTicket(Integer value){
        this.freezeFlatFeeHighTicket = value;
    }
 
    @XmlAttribute(name="returnFeeRegular")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("returnFeeRegular")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getReturnFeeRegular(){
        return returnFeeRegular;
    }
 
    public void setReturnFeeRegular(Integer value){
        this.returnFeeRegular = value;
    }
 
    @XmlAttribute(name="returnFeeThreshold")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("returnFeeThreshold")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getReturnFeeThreshold(){
        return returnFeeThreshold;
    }
 
    public void setReturnFeeThreshold(Integer value){
        this.returnFeeThreshold = value;
    }
 
    @XmlAttribute(name="returnFeeHighTicket")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("returnFeeHighTicket")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getReturnFeeHighTicket(){
        return returnFeeHighTicket;
    }
 
    public void setReturnFeeHighTicket(Integer value){
        this.returnFeeHighTicket = value;
    }
 
    @XmlAttribute(name="lateFeeRegular")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("lateFeeRegular")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getLateFeeRegular(){
        return lateFeeRegular;
    }
 
    public void setLateFeeRegular(Integer value){
        this.lateFeeRegular = value;
    }
 
    @XmlAttribute(name="lateFeeThreshold")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("lateFeeThreshold")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getLateFeeThreshold(){
        return lateFeeThreshold;
    }
 
    public void setLateFeeThreshold(Integer value){
        this.lateFeeThreshold = value;
    }
 
    @XmlAttribute(name="lateFeeHighTicket")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("lateFeeHighTicket")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getLateFeeHighTicket(){
        return lateFeeHighTicket;
    }
 
    public void setLateFeeHighTicket(Integer value){
        this.lateFeeHighTicket = value;
    }
 
    @XmlAttribute(name="merchantAccountCode")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("merchantAccountCode")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getMerchantAccountCode(){
        return merchantAccountCode;
    }
 
    public void setMerchantAccountCode(Integer value){
        this.merchantAccountCode = value;
    }
 
    @XmlAttribute(name="isApplyLateFeeInCollections")
    @FormParam("isApplyLateFeeInCollections")
    @BooleanFormat
    public Boolean getIsApplyLateFeeInCollections(){
        return isApplyLateFeeInCollections;
    }
 
    public void setIsApplyLateFeeInCollections(Boolean value){
        this.isApplyLateFeeInCollections = value;
    }
 
    @XmlAttribute(name="latePeriod")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("latePeriod")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getLatePeriod(){
        return latePeriod;
    }
 
    public void setLatePeriod(Integer value){
        this.latePeriod = value;
    }
 
    @XmlAttribute(name="documentAccessFee")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("documentAccessFee")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getDocumentAccessFee(){
        return documentAccessFee;
    }
 
    public void setDocumentAccessFee(Integer value){
        this.documentAccessFee = value;
    }
 
    @XmlAttribute(name="documentAccessInterval")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("documentAccessInterval")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getDocumentAccessInterval(){
        return documentAccessInterval;
    }
 
    public void setDocumentAccessInterval(Integer value){
        this.documentAccessInterval = value;
    }
 
    @XmlAttribute(name="declineLimit")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("declineLimit")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    public Integer getDeclineLimit(){
        return declineLimit;
    }
 
    public void setDeclineLimit(Integer value){
        this.declineLimit = value;
    }
 
 
    public void audit(AuditHelper helper, ServerObject object) {
        unicore.model.Merchant s_object = (unicore.model.Merchant) object;
        helper.audit("enrollmentFeeRegular", enrollmentFeeRegular, s_object.getEnrollmentFee() == null ? null : s_object.getEnrollmentFee().getId());
        helper.audit("enrollmentFeeThreshold", enrollmentFeeThreshold, s_object.getEnrollmentFee() == null ? null : s_object.getEnrollmentFee().getId());
        helper.audit("enrollmentFeeHighTicket", enrollmentFeeHighTicket, s_object.getEnrollmentFee() == null ? null : s_object.getEnrollmentFee().getId());
        helper.audit("softDeclineFeeRegular", softDeclineFeeRegular, s_object.getSoftDeclineCustomerFee() == null ? null : s_object.getSoftDeclineCustomerFee().getId());
        helper.audit("softDeclineFeeThreshold", softDeclineFeeThreshold, s_object.getSoftDeclineCustomerFee() == null ? null : s_object.getSoftDeclineCustomerFee().getId());
        helper.audit("softDeclineFeeHighTicket", softDeclineFeeHighTicket, s_object.getSoftDeclineCustomerFee() == null ? null : s_object.getSoftDeclineCustomerFee().getId());
        helper.audit("hardDeclineFeeRegular", hardDeclineFeeRegular, s_object.getHardDeclineCustomerFee() == null ? null : s_object.getHardDeclineCustomerFee().getId());
        helper.audit("hardDeclineFeeThreshold", hardDeclineFeeThreshold, s_object.getHardDeclineCustomerFee() == null ? null : s_object.getHardDeclineCustomerFee().getId());
        helper.audit("hardDeclineFeeHighTicket", hardDeclineFeeHighTicket, s_object.getHardDeclineCustomerFee() == null ? null : s_object.getHardDeclineCustomerFee().getId());
        helper.audit("retryFeeRegular", retryFeeRegular, s_object.getRetryCustomerFee() == null ? null : s_object.getRetryCustomerFee().getId());
        helper.audit("retryFeeThreshold", retryFeeThreshold, s_object.getRetryCustomerFee() == null ? null : s_object.getRetryCustomerFee().getId());
        helper.audit("retryFeeHighTicket", retryFeeHighTicket, s_object.getRetryCustomerFee() == null ? null : s_object.getRetryCustomerFee().getId());
        helper.audit("chargebackFeeRegular", chargebackFeeRegular, s_object.getChargebackCustomerFee() == null ? null : s_object.getChargebackCustomerFee().getId());
        helper.audit("chargebackFeeThreshold", chargebackFeeThreshold, s_object.getChargebackCustomerFee() == null ? null : s_object.getChargebackCustomerFee().getId());
        helper.audit("chargebackFeeHighTicket", chargebackFeeHighTicket, s_object.getChargebackCustomerFee() == null ? null : s_object.getChargebackCustomerFee().getId());
        helper.audit("statementFeeRegular", statementFeeRegular, s_object.getStatementCustomerFee() == null ? null : s_object.getStatementCustomerFee().getId());
        helper.audit("statementFeeThreshold", statementFeeThreshold, s_object.getStatementCustomerFee() == null ? null : s_object.getStatementCustomerFee().getId());
        helper.audit("statementFeeHighTicket", statementFeeHighTicket, s_object.getStatementCustomerFee() == null ? null : s_object.getStatementCustomerFee().getId());
        helper.audit("freezeRecurringFeeRegular", freezeRecurringFeeRegular, s_object.getFreezeRecurringCustomerFee() == null ? null : s_object.getFreezeRecurringCustomerFee().getId());
        helper.audit("freezeRecurringFeeThreshold", freezeRecurringFeeThreshold, s_object.getFreezeRecurringCustomerFee() == null ? null : s_object.getFreezeRecurringCustomerFee().getId());
        helper.audit("freezeRecurringFeeHighTicket", freezeRecurringFeeHighTicket, s_object.getFreezeRecurringCustomerFee() == null ? null : s_object.getFreezeRecurringCustomerFee().getId());
        helper.audit("freezeFlatFeeRegular", freezeFlatFeeRegular, s_object.getFreezeFlatCustomerFee() == null ? null : s_object.getFreezeFlatCustomerFee().getId());
        helper.audit("freezeFlatFeeThreshold", freezeFlatFeeThreshold, s_object.getFreezeFlatCustomerFee() == null ? null : s_object.getFreezeFlatCustomerFee().getId());
        helper.audit("freezeFlatFeeHighTicket", freezeFlatFeeHighTicket, s_object.getFreezeFlatCustomerFee() == null ? null : s_object.getFreezeFlatCustomerFee().getId());
        helper.audit("returnFeeRegular", returnFeeRegular, s_object.getReturnCustomerFee() == null ? null : s_object.getReturnCustomerFee().getId());
        helper.audit("returnFeeThreshold", returnFeeThreshold, s_object.getReturnCustomerFee() == null ? null : s_object.getReturnCustomerFee().getId());
        helper.audit("returnFeeHighTicket", returnFeeHighTicket, s_object.getReturnCustomerFee() == null ? null : s_object.getReturnCustomerFee().getId());
        helper.audit("lateFeeRegular", lateFeeRegular, s_object.getLateCustomerFee() == null ? null : s_object.getLateCustomerFee().getId());
        helper.audit("lateFeeThreshold", lateFeeThreshold, s_object.getLateCustomerFee() == null ? null : s_object.getLateCustomerFee().getId());
        helper.audit("lateFeeHighTicket", lateFeeHighTicket, s_object.getLateCustomerFee() == null ? null : s_object.getLateCustomerFee().getId());
        helper.audit("merchantAccountCode", merchantAccountCode, s_object.getCode());
        helper.audit("isApplyLateFeeInCollections", isApplyLateFeeInCollections, s_object.getIsLateFeeAppliedInCollections());
        helper.audit("latePeriod", latePeriod, s_object.getCustomerLatePeriod());
        helper.audit("documentAccessFee", documentAccessFee, s_object.getDocumentAccessFee());
        helper.audit("documentAccessInterval", documentAccessInterval, s_object.getDocumentAccessInterval());
        helper.audit("declineLimit", declineLimit, s_object.getDeclineLimit());
 
    }
 
    public static String objectTypeCode(){
        return "customerFees";
    }
 
}