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

import hr.com.port.ips.eracun.validation.BusinessRule;
import hr.com.port.ips.eracun.validation.RuleResult;
import hr.com.port.ips.eracun.validation.XmlEval;
import hr.com.port.ips.eracun.validation.Bt;
import org.w3c.dom.Document;
import org.apache.log4j.Logger;
import hr.com.port.functions.Functions;

public final class HrBr5 implements BusinessRule {
    private static final Logger logger = Logger.getLogger(HrBr5.class);

    public String getId() { return "HR-BR-5"; }
    public String getDescription() { return "Identifikator specifikacije mora imati vrijednost 'urn:cen.eu:en16931:2017#compliant#urn:mfin.gov.hr:cius 2025:1.0#conformant#urn: mfin.gov.hr:ext-2025:1.0'"; }

    public RuleResult validate(Document doc) {
        try {
            String cid = Bt.get(doc, "BT-24");
            boolean ok = cid != null && cid.trim().equals("urn:cen.eu:en16931:2017#compliant#urn:mfin.gov.hr:cius-2025:1.0#conformant#urn:mfin.gov.hr:ext-2025:1.0");
            String msg = ok ? "OK" : "CustomizationID (BT-24) mora biti točno 'urn:cen.eu:en16931:2017#compliant#urn:mfin.gov.hr:cius-2025:1.0#conformant#urn:mfin.gov.hr:ext-2025:1.0'.";
            return new RuleResult(getId(), ok, msg);
        } catch (Exception ex) {
            logger.error(new Functions().logging(ex));
            return new RuleResult(getId(), false, "Greška u provjeri: " + ex.getMessage());
        }
    }
}
