package com.sundot.airport.exam.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.List;

/**
 * <b>功能名：</b>SiteProfileDTO<br>
 * <b>说明：</b> 站级画像DTO <br>
 * <b>著作权：</b> Copyright (C) 2025 SUNDOT CORPORATION<br>
 * <b>修改履历：
 *
 * @author Claude
 */
@ApiModel("站级画像DTO")
public class SiteProfileDTO {

    @ApiModelProperty("站级ID")
    private Long siteId;

    @ApiModelProperty("站级名称")
    private String siteName;

    @ApiModelProperty("统计周期")
    private String period;

    @ApiModelProperty("站级平均分")
    private BigDecimal avgScore;

    @ApiModelProperty("总错题数量")
    private Integer totalErrors;

    @ApiModelProperty("站点整体的分类错题统计")
    private List<CategoryErrorStatistics> siteCategoryErrors;

    @ApiModelProperty("各科室的分类错题统计")
    private List<DeptCategoryErrors> deptCategoryErrors;

    public Long getSiteId() {
        return siteId;
    }

    public void setSiteId(Long siteId) {
        this.siteId = siteId;
    }

    public String getSiteName() {
        return siteName;
    }

    public void setSiteName(String siteName) {
        this.siteName = siteName;
    }

    public String getPeriod() {
        return period;
    }

    public void setPeriod(String period) {
        this.period = period;
    }

    public BigDecimal getAvgScore() {
        return avgScore;
    }

    public void setAvgScore(BigDecimal avgScore) {
        this.avgScore = avgScore;
    }

    public Integer getTotalErrors() {
        return totalErrors;
    }

    public void setTotalErrors(Integer totalErrors) {
        this.totalErrors = totalErrors;
    }

    public List<CategoryErrorStatistics> getSiteCategoryErrors() {
        return siteCategoryErrors;
    }

    public void setSiteCategoryErrors(List<CategoryErrorStatistics> siteCategoryErrors) {
        this.siteCategoryErrors = siteCategoryErrors;
    }

    public List<DeptCategoryErrors> getDeptCategoryErrors() {
        return deptCategoryErrors;
    }

    public void setDeptCategoryErrors(List<DeptCategoryErrors> deptCategoryErrors) {
        this.deptCategoryErrors = deptCategoryErrors;
    }

    /**
     * 科室分类错题统计
     */
    @ApiModel("科室分类错题统计")
    public static class DeptCategoryErrors {

        @ApiModelProperty("科室ID")
        private Long deptId;

        @ApiModelProperty("科室名称")
        private String deptName;

        @ApiModelProperty("该科室的分类错题列表")
        private List<CategoryErrorStatistics> categoryErrors;

        public Long getDeptId() {
            return deptId;
        }

        public void setDeptId(Long deptId) {
            this.deptId = deptId;
        }

        public String getDeptName() {
            return deptName;
        }

        public void setDeptName(String deptName) {
            this.deptName = deptName;
        }

        public List<CategoryErrorStatistics> getCategoryErrors() {
            return categoryErrors;
        }

        public void setCategoryErrors(List<CategoryErrorStatistics> categoryErrors) {
            this.categoryErrors = categoryErrors;
        }
    }

    /**
     * 分类错题统计
     */
    @ApiModel("分类错题统计")
    public static class CategoryErrorStatistics {

        @ApiModelProperty("分类ID")
        private String categoryId;

        @ApiModelProperty("分类名称")
        private String categoryName;

        @ApiModelProperty("错题数量")
        private Integer errorCount;

        public String getCategoryId() {
            return categoryId;
        }

        public void setCategoryId(String categoryId) {
            this.categoryId = categoryId;
        }

        public String getCategoryName() {
            return categoryName;
        }

        public void setCategoryName(String categoryName) {
            this.categoryName = categoryName;
        }

        public Integer getErrorCount() {
            return errorCount;
        }

        public void setErrorCount(Integer errorCount) {
            this.errorCount = errorCount;
        }
    }
}
