package hr.com.port.ips.eracun.validation;

import java.util.List;

public final class ValidationReport {
    private final boolean valid;
    private final List<RuleResult> results;

    public ValidationReport(boolean valid, List<RuleResult> results) {
        this.valid = valid;
        this.results = results;
    }

    public boolean isValid() { return valid; }
    public List<RuleResult> getResults() { return results; }

    public boolean hasErrors() {
        if (results == null) return !valid;
        for (RuleResult r : results) {
            if (!r.isPassed()) return true;
        }
        return false;
    }

    public String errorsAsString() {
        if (results == null) return "";
        StringBuilder sb = new StringBuilder();
        for (RuleResult r : results) {
            if (!r.isPassed()) {
                if (sb.length() > 0) sb.append("\n");
                sb.append(r.getRuleId()).append(": ").append(r.getMessage());
            }
        }
        return sb.toString();
    }
}
