package de.frigosped.dc.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.util.List;

/**
 * KI-Ausgabe: strukturierter Fragenkatalog aus einem Regelwerk-Dokument.
 * Jackson mappt snake_case-JSON automatisch auf camelCase-Felder.
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class GeneratedCatalogStructure {

    private List<GeneratedCategory> categories;

    public List<GeneratedCategory> getCategories() { return categories; }
    public void setCategories(List<GeneratedCategory> categories) { this.categories = categories; }

    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class GeneratedCategory {
        private String name;
        private String description;
        private int orderNr;
        private List<GeneratedQuestion> questions;

        public String getName()        { return name; }
        public void setName(String v)  { this.name = v; }

        public String getDescription()       { return description; }
        public void setDescription(String v) { this.description = v; }

        public int getOrderNr()        { return orderNr; }
        public void setOrderNr(int v)  { this.orderNr = v; }

        public List<GeneratedQuestion> getQuestions()             { return questions; }
        public void setQuestions(List<GeneratedQuestion> questions) { this.questions = questions; }
    }

    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class GeneratedQuestion {
        private String questionText;
        private String evaluationType;
        private Integer threshold;
        private String resultHandling;
        private String example0Percent;
        private String example100Percent;
        private int orderNr;

        public String getQuestionText()        { return questionText; }
        public void setQuestionText(String v)  { this.questionText = v; }

        public String getEvaluationType()        { return evaluationType; }
        public void setEvaluationType(String v)  { this.evaluationType = v; }

        public Integer getThreshold()          { return threshold; }
        public void setThreshold(Integer v)    { this.threshold = v; }

        public String getResultHandling()        { return resultHandling; }
        public void setResultHandling(String v)  { this.resultHandling = v; }

        public String getExample0Percent()        { return example0Percent; }
        public void setExample0Percent(String v)  { this.example0Percent = v; }

        public String getExample100Percent()        { return example100Percent; }
        public void setExample100Percent(String v)  { this.example100Percent = v; }

        public int getOrderNr()       { return orderNr; }
        public void setOrderNr(int v) { this.orderNr = v; }
    }
}
