package de.avatic.lcc.model.db.calculations;

import de.avatic.lcc.dto.generic.ContainerType;

import java.math.BigDecimal;

public class CalculationJobDestination {
    private Integer id;
    private Integer calculationJobId;
    private Integer premiseDestinationId;
    private Integer shippingFrequency;
    private BigDecimal totalCost;
    private BigDecimal annualAmount;

    // Risk
    private BigDecimal totalRiskCost;
    private BigDecimal totalChanceCost;

    // Handling
    private Boolean isSmallUnit;
    private BigDecimal annualRepackingCost;
    private BigDecimal annualHandlingCost;
    private BigDecimal annualDisposalCost;

    // Inventory
    private BigDecimal operationalStock;
    private BigDecimal safetyStock;
    private BigDecimal safetyStockInDays;
    private BigDecimal stockedInventory;
    private BigDecimal inTransportStock;
    private BigDecimal stockBeforePayment;
    private BigDecimal annualCapitalCost;
    private BigDecimal annualStorageCost;

    // Custom
    private BigDecimal customValue;
    private BigDecimal customDuties;
    private BigDecimal tariffRate;
    private BigDecimal annualCustomCost;

    // Air Freight Risk
    private BigDecimal airFreightShareMax;
    private BigDecimal airFreightShare;
    private BigDecimal airFreightVolumetricWeight;
    private BigDecimal airFreightWeight;
    private BigDecimal annualAirFreightCost;

    // Transportation
    private ContainerType containerType;
    private Integer huCount;
    private String layerStructure; // JSON as String
    private Integer layerCount;
    private Boolean transportWeightExceeded;
    private BigDecimal annualTransportationCost;
    private Boolean isD2D;
    private BigDecimal rateD2D;

    private BigDecimal containerUtilization;

    private Integer totalTransitTime;

    // Material Cost
    private BigDecimal materialCost;
    private BigDecimal fcaCost;


    public BigDecimal getContainerUtilization() {
        return containerUtilization;
    }

    public void setContainerUtilization(BigDecimal containerUtilization) {
        this.containerUtilization = containerUtilization;
    }

    public Integer getTotalTransitTime() {
        return totalTransitTime;
    }

    public void setTotalTransitTime(Integer totalTransitTime) {
        this.totalTransitTime = totalTransitTime;
    }

    public BigDecimal getAnnualAmount() {
        return annualAmount;
    }

    public void setAnnualAmount(BigDecimal annualAmount) {
        this.annualAmount = annualAmount;
    }

    public Integer getId() {
        return id;
    }

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

    public Integer getCalculationJobId() {
        return calculationJobId;
    }

    public void setCalculationJobId(Integer calculationJobId) {
        this.calculationJobId = calculationJobId;
    }

    public Integer getPremiseDestinationId() {
        return premiseDestinationId;
    }

    public void setPremiseDestinationId(Integer premiseDestinationId) {
        this.premiseDestinationId = premiseDestinationId;
    }

    public Integer getShippingFrequency() {
        return shippingFrequency;
    }

    public void setShippingFrequency(Integer shippingFrequency) {
        this.shippingFrequency = shippingFrequency;
    }

    public BigDecimal getTotalCost() {
        return totalCost;
    }

    public void setTotalCost(BigDecimal totalCost) {
        this.totalCost = totalCost;
    }

    public BigDecimal getTotalRiskCost() {
        return totalRiskCost;
    }

    public void setTotalRiskCost(BigDecimal totalRiskCost) {
        this.totalRiskCost = totalRiskCost;
    }

    public BigDecimal getTotalChanceCost() {
        return totalChanceCost;
    }

    public void setTotalChanceCost(BigDecimal totalChanceCost) {
        this.totalChanceCost = totalChanceCost;
    }

    public Boolean getSmallUnit() {
        return isSmallUnit;
    }

    public void setSmallUnit(Boolean smallUnit) {
        isSmallUnit = smallUnit;
    }

    public BigDecimal getAnnualRepackingCost() {
        return annualRepackingCost;
    }

    public void setAnnualRepackingCost(BigDecimal annualRepackingCost) {
        this.annualRepackingCost = annualRepackingCost;
    }

    public BigDecimal getAnnualHandlingCost() {
        return annualHandlingCost;
    }

    public void setAnnualHandlingCost(BigDecimal annualHandlingCost) {
        this.annualHandlingCost = annualHandlingCost;
    }

    public BigDecimal getAnnualDisposalCost() {
        return annualDisposalCost;
    }

    public void setAnnualDisposalCost(BigDecimal annualDisposalCost) {
        this.annualDisposalCost = annualDisposalCost;
    }

    public BigDecimal getOperationalStock() {
        return operationalStock;
    }

    public void setOperationalStock(BigDecimal operationalStock) {
        this.operationalStock = operationalStock;
    }

    public BigDecimal getSafetyStock() {
        return safetyStock;
    }

    public void setSafetyStock(BigDecimal safetyStock) {
        this.safetyStock = safetyStock;
    }

    public BigDecimal getStockedInventory() {
        return stockedInventory;
    }

    public void setStockedInventory(BigDecimal stockedInventory) {
        this.stockedInventory = stockedInventory;
    }

    public BigDecimal getInTransportStock() {
        return inTransportStock;
    }

    public void setInTransportStock(BigDecimal inTransportStock) {
        this.inTransportStock = inTransportStock;
    }

    public BigDecimal getStockBeforePayment() {
        return stockBeforePayment;
    }

    public void setStockBeforePayment(BigDecimal stockBeforePayment) {
        this.stockBeforePayment = stockBeforePayment;
    }

    public BigDecimal getAnnualCapitalCost() {
        return annualCapitalCost;
    }

    public void setAnnualCapitalCost(BigDecimal annualCapitalCost) {
        this.annualCapitalCost = annualCapitalCost;
    }

    public BigDecimal getAnnualStorageCost() {
        return annualStorageCost;
    }

    public void setAnnualStorageCost(BigDecimal annualStorageCost) {
        this.annualStorageCost = annualStorageCost;
    }

    public BigDecimal getCustomValue() {
        return customValue;
    }

    public void setCustomValue(BigDecimal customValue) {
        this.customValue = customValue;
    }

    public BigDecimal getCustomDuties() {
        return customDuties;
    }

    public void setCustomDuties(BigDecimal customDuties) {
        this.customDuties = customDuties;
    }

    public BigDecimal getTariffRate() {
        return tariffRate;
    }

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

    public BigDecimal getAnnualCustomCost() {
        return annualCustomCost;
    }

    public void setAnnualCustomCost(BigDecimal annualCustomCost) {
        this.annualCustomCost = annualCustomCost;
    }

    public BigDecimal getAirFreightShareMax() {
        return airFreightShareMax;
    }

    public void setAirFreightShareMax(BigDecimal airFreightShareMax) {
        this.airFreightShareMax = airFreightShareMax;
    }

    public BigDecimal getAirFreightShare() {
        return airFreightShare;
    }

    public void setAirFreightShare(BigDecimal airFreightShare) {
        this.airFreightShare = airFreightShare;
    }

    public BigDecimal getAirFreightVolumetricWeight() {
        return airFreightVolumetricWeight;
    }

    public void setAirFreightVolumetricWeight(BigDecimal airFreightVolumetricWeight) {
        this.airFreightVolumetricWeight = airFreightVolumetricWeight;
    }

    public BigDecimal getAirFreightWeight() {
        return airFreightWeight;
    }

    public void setAirFreightWeight(BigDecimal airFreightWeight) {
        this.airFreightWeight = airFreightWeight;
    }

    public BigDecimal getAnnualAirFreightCost() {
        return annualAirFreightCost;
    }

    public void setAnnualAirFreightCost(BigDecimal annualAirFreightCost) {
        this.annualAirFreightCost = annualAirFreightCost;
    }

    public ContainerType getContainerType() {
        return containerType;
    }

    public void setContainerType(ContainerType containerType) {
        this.containerType = containerType;
    }

    public Integer getHuCount() {
        return huCount;
    }

    public void setHuCount(Integer huCount) {
        this.huCount = huCount;
    }

    public String getLayerStructure() {
        return layerStructure;
    }

    public void setLayerStructure(String layerStructure) {
        this.layerStructure = layerStructure;
    }

    public Integer getLayerCount() {
        return layerCount;
    }

    public void setLayerCount(Integer layerCount) {
        this.layerCount = layerCount;
    }

    public Boolean getTransportWeightExceeded() {
        return transportWeightExceeded;
    }

    public void setTransportWeightExceeded(Boolean transportWeightExceeded) {
        this.transportWeightExceeded = transportWeightExceeded;
    }

    public BigDecimal getAnnualTransportationCost() {
        return annualTransportationCost;
    }

    public void setAnnualTransportationCost(BigDecimal annualTransportationCost) {
        this.annualTransportationCost = annualTransportationCost;
    }

    public BigDecimal getMaterialCost() {
        return materialCost;
    }

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

    public BigDecimal getFcaCost() {
        return fcaCost;
    }

    public void setFcaCost(BigDecimal fcaCost) {
        this.fcaCost = fcaCost;
    }

    public void setSafetyStockInDays(BigDecimal safetyStockInDays) {
        this.safetyStockInDays = safetyStockInDays;
    }

    public BigDecimal getSafetyStockInDays() {
        return safetyStockInDays;
    }

    public Boolean getD2D() {
        return isD2D;
    }

    public void setD2D(Boolean d2D) {
        isD2D = d2D;
    }

    public BigDecimal getRateD2D() {
        return rateD2D;
    }

    public void setRateD2D(BigDecimal rateD2D) {
        this.rateD2D = rateD2D;
    }
}
