package kz.konturai.parser.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import java.util.ArrayList; // Добавьте импорт для ArrayList

public class DeepResearchResponse {

    @JsonProperty("report")
    private String report;

    @JsonProperty("answer")
    private String answer;

    @JsonProperty("learnings") // <-- ДОБАВИТЬ ЭТО ПОЛЕ
    private List<String> learnings = new ArrayList<>(); // Инициализация, чтобы избежать NullPointerException

    @JsonProperty("visitedUrls")
    private List<String> visitedUrls;

    @JsonProperty("status")
    private String status;

    @JsonProperty("error")
    private String error;

    public DeepResearchResponse() {
    }

    // Геттеры и сеттеры для существующих полей...

    public List<String> getLearnings() { // <-- ДОБАВИТЬ ГЕТТЕР
        return learnings;
    }

    public void setLearnings(List<String> learnings) { // <-- ДОБАВИТЬ СЕТТЕР
        this.learnings = learnings;
    }

    public List<String> getVisitedUrls() {
        return visitedUrls;
    }

    public void setVisitedUrls(List<String> visitedUrls) {
        this.visitedUrls = visitedUrls;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getError() {
        return error;
    }

    public void setError(String error) {
        this.error = error;
    }

    /**
     * Получить основной текст отчёта (report или answer + learnings)
     */
    public String getMainContent() {
        StringBuilder contentBuilder = new StringBuilder();

        // Сначала добавляем answer, если есть
        if (answer != null && !answer.trim().isEmpty()) {
            contentBuilder.append(answer).append("\n\n");
        }

        // Затем добавляем learnings, если они есть
        if (learnings != null && !learnings.isEmpty()) {
            contentBuilder.append("### Подробные выводы:\n");
            for (String learning : learnings) {
                contentBuilder.append("- ").append(learning).append("\n");
            }
            contentBuilder.append("\n");
        }

        // Также можно добавить report, если вдруг deep-research начнет его возвращать
        // if (report != null && !report.trim().isEmpty()) {
        // contentBuilder.append(report).append("\n\n");
        // }

        return contentBuilder.toString().trim();
    }

}