SpecialTariffConsistencyValidator.java

package com.github.jenkaby.bikerental.tariff.web.query.validation;

import com.github.jenkaby.bikerental.tariff.web.query.dto.CostCalculationRequest;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;

public class SpecialTariffConsistencyValidator implements ConstraintValidator<SpecialTariffConsistency, CostCalculationRequest> {

    @Override
    public boolean isValid(CostCalculationRequest value, ConstraintValidatorContext context) {
        if (value == null) {
            return true;
        }
        boolean isTariffIdProvided = value.specialTariffId() != null;
        boolean isPriceProvided = value.specialPrice() != null;
        return isTariffIdProvided == isPriceProvided;
    }
}