package kz.konturai.parser.validator;

import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import java.util.Arrays;
import java.util.List;

public class RegionValidator implements ConstraintValidator<ValidRegion, List<String>> {

    private static final List<String> VALID_REGIONS = Arrays.asList(
            "Алматы",
            "Астана",
            "Шымкент",
            "Караганда",
            "Актобе",
            "Тараз",
            "Павлодар",
            "Усть-Каменогорск",
            "Семей",
            "Костанай",
            "Кызылорда",
            "Уральск",
            "Петропавловск",
            "Атырау",
            "Актау",
            "Туркестан",
            "Кокшетау",
            "Талдыкорган",
            "Экибастуз",
            "Рудный");

    @Override
    public void initialize(ValidRegion constraintAnnotation) {
    }

    @Override
    public boolean isValid(List<String> value, ConstraintValidatorContext context) {
        if (value == null || value.isEmpty()) {
            return true; // @NotEmpty will handle null/empty
        }
        // Проверяем, что все регионы в списке валидны
        for (String region : value) {
            if (region == null || region.trim().isEmpty() || !VALID_REGIONS.contains(region)) {
                return false;
            }
        }
        return true;
    }
}

