package de.avatic.lcc.dto.calculation.edit;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import de.avatic.lcc.dto.calculation.DestinationDTO;
import de.avatic.lcc.dto.generic.DimensionDTO;
import de.avatic.lcc.dto.generic.MaterialDTO;
import de.avatic.lcc.dto.generic.NodeDTO;

import java.util.List;

public class PremiseDetailDTO {

    private Integer id;

    private MaterialDTO material;

    private NodeDTO supplier;

    @JsonProperty("handling_unit")
    private DimensionDTO dimension;

    @JsonProperty("is_mixable")
    private Boolean isMixable;

    @JsonProperty("is_stackable")
    private Boolean isStackable;

    private List<DestinationDTO> destinations;

    @JsonProperty("material_cost")
    private Double materialCost;

    @JsonProperty("oversea_share")
    private Double overseaShare;

    @JsonProperty("hs_code")
    private String hsCode;

    @JsonProperty("tariff_rate")
    private Double tariffRate;

    @JsonProperty("is_fca_enabled")
    private Boolean isFcaEnabled;

    @JsonProperty("tariff_unlocked")
    private Boolean tariffUnlocked;


    public Double getMaterialCost() {
        return materialCost;
    }

    public void setMaterialCost(Double materialCost) {
        this.materialCost = materialCost;
    }

    public Double getOverseaShare() {
        return overseaShare;
    }

    public void setOverseaShare(Double overseaShare) {
        this.overseaShare = overseaShare;
    }

    public String getHsCode() {
        return hsCode;
    }

    public void setHsCode(String hsCode) {
        this.hsCode = hsCode;
    }

    public Double getTariffRate() {
        return tariffRate;
    }

    public void setTariffRate(Double tariffRate) {
        this.tariffRate = tariffRate;
    }

    @JsonIgnore
    public Boolean getFcaEnabled() {
        return isFcaEnabled;
    }

    public void setFcaEnabled(Boolean fcaEnabled) {
        isFcaEnabled = fcaEnabled;
    }

    public Integer getId() {
        return id;
    }

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

    public MaterialDTO getMaterial() {
        return material;
    }

    public void setMaterial(MaterialDTO material) {
        this.material = material;
    }

    public NodeDTO getSupplier() {
        return supplier;
    }

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

    public DimensionDTO getDimension() {
        return dimension;
    }

    public void setDimension(DimensionDTO dimension) {
        this.dimension = dimension;
    }

    @JsonIgnore
    public Boolean getMixable() {
        return isMixable;
    }

    public void setMixable(Boolean mixable) {
        isMixable = mixable;
    }

    @JsonIgnore
    public Boolean getStackable() {
        return isStackable;
    }

    public void setStackable(Boolean stackable) {
        isStackable = stackable;
    }

    public List<DestinationDTO> getDestinations() {
        return destinations;
    }

    public void setDestinations(List<DestinationDTO> destinations) {
        this.destinations = destinations;
    }

    public void setTariffUnlocked(Boolean tariffUnlocked) {
        this.tariffUnlocked = tariffUnlocked;
    }

    @JsonIgnore
    public Boolean getTariffUnlocked() {
        return tariffUnlocked;
    }
}
