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

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Digits;
import jakarta.validation.constraints.Min;

import java.util.List;

public class DestinationSetListItemDTO {

    @JsonProperty("destination_node_id")
    Integer destinationNodeId;

    @JsonProperty("annual_amount")
    @Min(1)
    private Integer annualAmount;

    @JsonProperty("repackaging_costs")
    @DecimalMin(value = "0.00", message = "Amount must be greater than or equal 0")
    @Digits(integer = 13, fraction = 2, message = "Amount must have at most 2 decimal places")
    private Number repackingCost;

    @JsonProperty("handling_costs")
    @DecimalMin(value = "0.00", message = "Amount must be greater than or equal 0")
    @Digits(integer = 13, fraction = 2, message = "Amount must have at most 2 decimal places")
    private Number handlingCost;

    @JsonProperty("disposal_costs")
    @DecimalMin(value = "0.00", message = "Amount must be greater than or equal 0")
    @Digits(integer = 13, fraction = 2, message = "Amount must have at most 2 decimal places")
    private Number disposalCost;

    public Integer getDestinationNodeId() {
        return destinationNodeId;
    }

    public void setDestinationNodeId(Integer destinationNodeId) {
        this.destinationNodeId = destinationNodeId;
    }

    public Integer getAnnualAmount() {
        return annualAmount;
    }

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

    public Number getRepackingCost() {
        return repackingCost;
    }

    public void setRepackingCost(Number repackingCost) {
        this.repackingCost = repackingCost;
    }

    public Number getHandlingCost() {
        return handlingCost;
    }

    public void setHandlingCost(Number handlingCost) {
        this.handlingCost = handlingCost;
    }

    public Number getDisposalCost() {
        return disposalCost;
    }

    public void setDisposalCost(Number disposalCost) {
        this.disposalCost = disposalCost;
    }
}
