ZoneIdValidator.java
package com.seebie.server.validation;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import java.time.DateTimeException;
import java.time.ZoneId;
public class ZoneIdValidator implements ConstraintValidator<ZoneIdConstraint, String> {
    @Override
    public void initialize(ZoneIdConstraint constraint) {
    }
    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        // Null values are NOT considered valid
        if (value == null) {
            return false;
        }
        try {
            ZoneId.of(value);
        }
        catch (DateTimeException e) {
            return false;
        }
        return true;
    }
}