package de.avatic.lcc.model.taric;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.math.BigDecimal;
import java.util.List;

/**
 * Represents a measure condition
 */
public class MeasureCondition {

    @JsonProperty("condition_code")
    private String conditionCode;

    @JsonProperty("condition_sequence_number")
    private Integer conditionSequenceNumber;

    @JsonProperty("condition_duty_amount")
    private BigDecimal conditionDutyAmount;

    @JsonProperty("condition_monetary_unit_code")
    private String conditionMonetaryUnitCode;

    @JsonProperty("condition_measurement_unit_code")
    private String conditionMeasurementUnitCode;

    @JsonProperty("condition_measurement_unit_qualifier_code")
    private String conditionMeasurementUnitQualifierCode;

    @JsonProperty("action_code")
    private String actionCode;

    @JsonProperty("certificate_type_code")
    private String certificateTypeCode;

    @JsonProperty("certificate_code")
    private String certificateCode;

    @JsonProperty("certificate_description")
    private String certificateDescription;

    @JsonProperty("condition_components")
    private List<MeasureComponent> conditionComponents;

    // Getters and Setters

    public String getConditionCode() {
        return conditionCode;
    }

    public void setConditionCode(String conditionCode) {
        this.conditionCode = conditionCode;
    }

    public Integer getConditionSequenceNumber() {
        return conditionSequenceNumber;
    }

    public void setConditionSequenceNumber(Integer conditionSequenceNumber) {
        this.conditionSequenceNumber = conditionSequenceNumber;
    }

    public BigDecimal getConditionDutyAmount() {
        return conditionDutyAmount;
    }

    public void setConditionDutyAmount(BigDecimal conditionDutyAmount) {
        this.conditionDutyAmount = conditionDutyAmount;
    }

    public String getConditionMonetaryUnitCode() {
        return conditionMonetaryUnitCode;
    }

    public void setConditionMonetaryUnitCode(String conditionMonetaryUnitCode) {
        this.conditionMonetaryUnitCode = conditionMonetaryUnitCode;
    }

    public String getConditionMeasurementUnitCode() {
        return conditionMeasurementUnitCode;
    }

    public void setConditionMeasurementUnitCode(String conditionMeasurementUnitCode) {
        this.conditionMeasurementUnitCode = conditionMeasurementUnitCode;
    }

    public String getConditionMeasurementUnitQualifierCode() {
        return conditionMeasurementUnitQualifierCode;
    }

    public void setConditionMeasurementUnitQualifierCode(String conditionMeasurementUnitQualifierCode) {
        this.conditionMeasurementUnitQualifierCode = conditionMeasurementUnitQualifierCode;
    }

    public String getActionCode() {
        return actionCode;
    }

    public void setActionCode(String actionCode) {
        this.actionCode = actionCode;
    }

    public String getCertificateTypeCode() {
        return certificateTypeCode;
    }

    public void setCertificateTypeCode(String certificateTypeCode) {
        this.certificateTypeCode = certificateTypeCode;
    }

    public String getCertificateCode() {
        return certificateCode;
    }

    public void setCertificateCode(String certificateCode) {
        this.certificateCode = certificateCode;
    }

    public String getCertificateDescription() {
        return certificateDescription;
    }

    public void setCertificateDescription(String certificateDescription) {
        this.certificateDescription = certificateDescription;
    }

    public List<MeasureComponent> getConditionComponents() {
        return conditionComponents;
    }

    public void setConditionComponents(List<MeasureComponent> conditionComponents) {
        this.conditionComponents = conditionComponents;
    }
}