SettlementDTO.java

package com.tradecloud.dto.api.invoice;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.math.BigDecimal;
import java.util.Date;

public abstract class SettlementDTO {
    private Long id;
    @JsonProperty(access = JsonProperty.Access.AUTO)
    private BigDecimal amount;
    @JsonProperty(access = JsonProperty.Access.AUTO)
    protected BigDecimal percentage;
    @JsonProperty(access = JsonProperty.Access.AUTO)
    private String purchaseCurrency;

    protected Date settlementDate;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getPercentage() {
        return percentage;
    }

    public void setPercentage(BigDecimal percentage) {
        this.percentage = percentage;
    }

    public String getPurchaseCurrency() {
        return purchaseCurrency;
    }

    public void setPurchaseCurrency(String purchaseCurrency) {
        this.purchaseCurrency = purchaseCurrency;
    }

    public abstract void setForwardRate(BigDecimal forwardRate);

    public abstract void setOverrideForwardRate(boolean overriddenForwardRate);

    public abstract void setSpotRate(BigDecimal spotRate);

    public abstract void setOverrideSpotRate(boolean overriddenSpotRate);

    public abstract boolean isOverrideSpotRate();

    public abstract BigDecimal getSpotRate();

    public abstract boolean isOverrideForwardRate();

    public abstract BigDecimal getForwardRate();

    public abstract void setSettlementDate(Date settlementDate);
}