package com.microservices.pms.project.domain.vo;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.microservices.pms.project.domain.PmsProjectModuleStatistics;
import com.microservices.pms.project.domain.PmsProjectTestCaseExecutionStatistics;
import com.microservices.system.api.domain.SimpleSysUser;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 测试报告图表对象 pms_project_test_report
 * 
 * @author wanjia
 * @date 2023-12-14
 */
@Data
public class PmsProjectTestReportChartVo extends BaseEntityVo {
    /** 测试报告id */
    @ApiModelProperty(value = "测试报告id")
    private Long id;

    /** 项目ID */
    @ApiModelProperty(value = "项目ID")
    private Long pmsProjectId;

    /** 测试报告名称 */
    @ApiModelProperty(value = "测试报告名称")
    private String name;

    /** 测试报告总结 */
    @ApiModelProperty(value = "测试报告总结")
    private String summary;

    @ApiModelProperty(value = "测试报告负责人")
    private SimpleSysUser reportAssignee;

    @ApiModelProperty(value = "测试单负责人集合")
    private List<SimpleSysUser> testSheetAssignees;

    @ApiModelProperty(value = "测试单用例执行人集合")
    private List<SimpleSysUser> testSheetCaseTesters;

    @ApiModelProperty(value = "测试开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startTime;

    @ApiModelProperty(value = "测试结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endTime;

    @ApiModelProperty(value = "关联项目")
    private PmsProjectSimpleVo linkedProject;

    @ApiModelProperty(value = "关联迭代")
    private List<PmsProjectSprintSimpleVo> linkedSprint;

    @ApiModelProperty(value = "测试用例执行结果统计")
    private List<PmsProjectTestCaseExecutionStatistics> testCaseExecutionResultStatistics;

    @ApiModelProperty(value = "模块数据统计")
    private List<PmsProjectModuleStatistics> moduleStatistics;

    @ApiModelProperty(value = "缺陷状态统计分布")
    private JSONArray issueStatusStatistics;

    @ApiModelProperty(value = "缺陷优先级统计分布")
    private JSONArray issuePriorityStatistics;

    @ApiModelProperty(value = "测试报告下关联的测试单列表")
    private List<PmsProjectTestsheetVo> pmsProjectTestsheetList;

    @ApiModelProperty(value = "测试单下关联缺陷列表")
    private JSONObject pmsProjectIssueList;
}
