ProductDTO.java

package com.tradecloud.dto.api;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRootName;
import com.tradecloud.schema.*;
import com.tradecloud.schema.ordermanagement.ItemUnit;
import com.tradecloud.schema.ordermanagement.PackageUnit;
import com.tradecloud.schema.ordermanagement.Percent;

import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlType;
import java.io.Serializable;
import java.math.BigDecimal;

@JsonRootName(value = "product")
@XmlType(name = "ProductDTO2")
public class ProductDTO implements Serializable {

    private Long id;
    protected ItemUnit unitType;
    protected PackageUnit packageUnitType;

    @JsonProperty(required = true)
    @Size(max = 30)
    private String barcode;

    @JsonProperty(required = true)
    private String description;
    protected BigDecimal quantity;
    protected CurrencyType price;
    protected WeightType weight;
    protected VolumeType volume;
    private boolean dangerousGoods;

    @JsonProperty(required = true)
    private String reference;

    @JsonProperty(required = true)
    private String supplier;

    @JsonProperty(required = true)
    private String supplierReference;
    protected String tariffHeading;

    @JsonProperty(required = true)
    protected ISO3166CountryCodeType countryOfOrigin;
    protected String organisation;

    private BigDecimal packageLength;
    private BigDecimal packageWidth;
    private BigDecimal packageHeight;
    private BigDecimal packageWeight;
    private Type type;
    protected Percent customsDuty;
    protected Percent adValoremDuty;
    protected String adValoremDutyTariffHeading;
    private boolean elc;
    protected Long templateId;

    private Type productType;

    public ItemUnit getUnitType() {
        return unitType;
    }

    public void setUnitType(ItemUnit value) {
        this.unitType = value;
    }

    public PackageUnit getPackageUnitType() {
        return packageUnitType;
    }

    public void setPackageUnitType(PackageUnit value) {
        this.packageUnitType = value;
    }

    public String getBarcode() {
        return barcode;
    }

    public void setBarcode(String value) {
        this.barcode = value;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String value) {
        this.description = value;
    }

    public BigDecimal getQuantity() {
        return quantity;
    }

    public void setQuantity(BigDecimal value) {
        this.quantity = value;
    }

    public CurrencyType getPrice() {
        return price;
    }

    public void setPrice(CurrencyType value) {
        this.price = value;
    }

    public WeightType getWeight() {
        return weight;
    }

    public void setWeight(WeightType value) {
        this.weight = value;
    }

    public VolumeType getVolume() {
        return volume;
    }

    public void setVolume(VolumeType value) {
        this.volume = value;
    }

    public String getReference() {
        return reference;
    }

    public void setReference(String value) {
        this.reference = value;
    }

    public String getSupplier() {
        return supplier;
    }

    public void setSupplier(String value) {
        this.supplier = value;
    }

    public String getTariffHeading() {
        return tariffHeading;
    }

    public void setTariffHeading(String value) {
        this.tariffHeading = value;
    }

    public ISO3166CountryCodeType getCountryOfOrigin() {
        return countryOfOrigin;
    }

    public void setCountryOfOrigin(ISO3166CountryCodeType value) {
        this.countryOfOrigin = value;
    }

    public String getOrganisation() {
        return organisation;
    }

    public void setOrganisation(String value) {
        this.organisation = value;
    }

    public String getSupplierReference() {
        return supplierReference;
    }

    public void setSupplierReference(String supplierReference) {
        this.supplierReference = supplierReference;
    }

    public BigDecimal getPackageLength() {
        return packageLength;
    }

    public void setPackageLength(BigDecimal packageLength) {
        this.packageLength = packageLength;
    }

    public BigDecimal getPackageWidth() {
        return packageWidth;
    }

    public void setPackageWidth(BigDecimal packageWidth) {
        this.packageWidth = packageWidth;
    }

    public BigDecimal getPackageHeight() {
        return packageHeight;
    }

    public void setPackageHeight(BigDecimal packageHeight) {
        this.packageHeight = packageHeight;
    }

    public BigDecimal getPackageWeight() {
        return packageWeight;
    }

    public void setPackageWeight(BigDecimal packageWeight) {
        this.packageWeight = packageWeight;
    }

    public boolean isDangerousGoods() {
        return dangerousGoods;
    }

    public void setDangerousGoods(boolean dangerousGoods) {
        this.dangerousGoods = dangerousGoods;
    }

    public Type getType() {
        return type;
    }

    public void setType(Type type) {
        this.type = type;
    }

    public Type getProductType() {
        return productType;
    }

    public void setProductType(Type productType) {
        this.productType = productType;
    }

    public Long getTemplateId() {
        return templateId;
    }

    public void setTemplateId(Long value) {
        this.templateId = value;
    }

    public Long getId() {
        return id;
    }

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

    public Percent getCustomsDuty() {
        return customsDuty;
    }

    public void setCustomsDuty(Percent customsDuty) {
        this.customsDuty = customsDuty;
    }

    public Percent getAdValoremDuty() {
        return adValoremDuty;
    }

    public void setAdValoremDuty(Percent adValoremDuty) {
        this.adValoremDuty = adValoremDuty;
    }

    public boolean isElc() {
        return elc;
    }

    public void setElc(boolean elc) {
        this.elc = elc;
    }
}