package hr.com.port.ips.eracun.provider.mer.enums;

public enum MerEreportingInvoiceType {
    U(1, "U", "U"),      // prema MER: "U"
    I(2, "I", "I"),      // prema MER: "I"
    IR(3, "IR", "IR"),   // prema MER: "IR"
    UNKNOWN(-1, "?", "Nepoznato");

    private final int id;
    private final String code;   // ovo ide u DB: invoice_type_code
    private final String naziv;

    MerEreportingInvoiceType(int id, String code, String naziv) {
        this.id = id;
        this.code = code;
        this.naziv = naziv;
    }

    public int getId() { return id; }
    public String getCode() { return code; }
    public String getNaziv() { return naziv; }

    public static MerEreportingInvoiceType fromId(Integer id) {
        if (id == null) return UNKNOWN;
        for (MerEreportingInvoiceType t : values()) {
            if (t.id == id) return t;
        }
        return UNKNOWN;
    }

    public static MerEreportingInvoiceType fromCode(String code) {
        if (code == null) return UNKNOWN;
        String c = code.trim().toUpperCase();
        for (MerEreportingInvoiceType t : values()) {
            if (t.code.equalsIgnoreCase(c)) return t;
        }
        return UNKNOWN;
    }
}