package kz.konturai.parser.dto;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

public class MarketingAnalysisResult {
    private String analysisId;
    private String status;
    private LocalDateTime createdAt;
    private LocalDateTime completedAt;
    private MarketingReport report;
    private String v2AnalysisId; // ID связанного v2 анализа

    public MarketingAnalysisResult() {
    }

    public MarketingAnalysisResult(String analysisId, String status, LocalDateTime createdAt, LocalDateTime completedAt,
            MarketingReport report) {
        this.analysisId = analysisId;
        this.status = status;
        this.createdAt = createdAt;
        this.completedAt = completedAt;
        this.report = report;
    }

    public String getAnalysisId() {
        return analysisId;
    }

    public void setAnalysisId(String analysisId) {
        this.analysisId = analysisId;
    }

    public String getStatus() {
        return status;
    }

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

    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }

    public LocalDateTime getCompletedAt() {
        return completedAt;
    }

    public void setCompletedAt(LocalDateTime completedAt) {
        this.completedAt = completedAt;
    }

    public MarketingReport getReport() {
        return report;
    }

    public void setReport(MarketingReport report) {
        this.report = report;
    }

    public String getV2AnalysisId() {
        return v2AnalysisId;
    }

    public void setV2AnalysisId(String v2AnalysisId) {
        this.v2AnalysisId = v2AnalysisId;
    }

    public static class MarketingReport {
        private String summary;
        private String fullAnalysis;
        private Map<String, Object> chartsData;
        private String pdfUrl;

        public MarketingReport() {
        }

        public String getSummary() {
            return summary;
        }

        public void setSummary(String summary) {
            this.summary = summary;
        }

        public String getFullAnalysis() {
            return fullAnalysis;
        }

        public void setFullAnalysis(String fullAnalysis) {
            this.fullAnalysis = fullAnalysis;
        }

        public Map<String, Object> getChartsData() {
            return chartsData;
        }

        public void setChartsData(Map<String, Object> chartsData) {
            this.chartsData = chartsData;
        }

        public String getPdfUrl() {
            return pdfUrl;
        }

        public void setPdfUrl(String pdfUrl) {
            this.pdfUrl = pdfUrl;
        }
    }

    public static class TargetAudience {
        private String description;
        private List<String> channels;

        public TargetAudience() {
        }

        public TargetAudience(String description, List<String> channels) {
            this.description = description;
            this.channels = channels;
        }

        public String getDescription() {
            return description;
        }

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

        public List<String> getChannels() {
            return channels;
        }

        public void setChannels(List<String> channels) {
            this.channels = channels;
        }
    }

    public static class Strategy {
        private String duration;
        private List<String> channels;
        private List<String> contentTypes;

        public Strategy() {
        }

        public Strategy(String duration, List<String> channels, List<String> contentTypes) {
            this.duration = duration;
            this.channels = channels;
            this.contentTypes = contentTypes;
        }

        public String getDuration() {
            return duration;
        }

        public void setDuration(String duration) {
            this.duration = duration;
        }

        public List<String> getChannels() {
            return channels;
        }

        public void setChannels(List<String> channels) {
            this.channels = channels;
        }

        public List<String> getContentTypes() {
            return contentTypes;
        }

        public void setContentTypes(List<String> contentTypes) {
            this.contentTypes = contentTypes;
        }
    }
}
