package com.ruoyi.web.modules.screen.domain.vo;

import java.io.Serializable;
import java.util.List;
import com.ruoyi.web.modules.prosperity.domain.vo.AchievementAnnualReportVo;

/**
 * 大屏共同富裕看板响应（{@code GET /bigScreen/commonProsperity/dashboard}）。
 * <p>
 * {@code achievement} 结构同管理端年度报告 VO：
 * {@code summary} 为最大统计月单月值；{@code monthly} 为所选年 1～最大月。
 * </p>
 */
public class CommonProsperityScreenDashboardVo implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 回显的统计年份 Y */
    private Integer statYear;

    /** 可选年份（成果台账年 ∪ 已发布项目实施年 ∪ 当前自然年），降序，供年份选择器 */
    private List<Integer> availableYears;

    /**
     * 成果区块：{@code hasData} / {@code summary}（总览+数字赋能）/ {@code monthly}（按月图表）。
     * 无台账时 {@code hasData=false}、{@code summary=null}、{@code monthly=[]}。
     */
    private AchievementAnnualReportVo achievement;

    /**
     * 共富项目分类饼图：固定 3 项（类型 1/2/3）；无项目时 count、ratio 均为 0。
     */
    private List<ProjectTypeStatVo> projectTypeStats;

    /** 该年是否存在 ≥1 条符合筛选的已发布项目（驱动饼图/列表空态） */
    private Boolean hasProjectData;

    public Integer getStatYear()
    {
        return statYear;
    }

    public void setStatYear(Integer statYear)
    {
        this.statYear = statYear;
    }

    public List<Integer> getAvailableYears()
    {
        return availableYears;
    }

    public void setAvailableYears(List<Integer> availableYears)
    {
        this.availableYears = availableYears;
    }

    public AchievementAnnualReportVo getAchievement()
    {
        return achievement;
    }

    public void setAchievement(AchievementAnnualReportVo achievement)
    {
        this.achievement = achievement;
    }

    public List<ProjectTypeStatVo> getProjectTypeStats()
    {
        return projectTypeStats;
    }

    public void setProjectTypeStats(List<ProjectTypeStatVo> projectTypeStats)
    {
        this.projectTypeStats = projectTypeStats;
    }

    public Boolean getHasProjectData()
    {
        return hasProjectData;
    }

    public void setHasProjectData(Boolean hasProjectData)
    {
        this.hasProjectData = hasProjectData;
    }
}
