package net.northking.cctp.dw.api.service;

import net.northking.cctp.dw.db.entity.BugDensityChart;
import net.northking.cctp.dw.db.entity.BugLegacyGrade;
import net.northking.cctp.dw.db.entity.BugValidRepairRatio;
import net.northking.cctp.dw.db.entity.MidUserBugGrade;
import net.northking.cctp.dw.dto.ProjectDataVo;

import java.util.List;

/**
 * @author: puchao.ma
 * @date: 2021/12/17 11:12
 */
public interface BugChartService {

    /**
     * 清空缺陷有效率和修复率
     */
    void deleteAll();

    /**
     * 新增缺陷有效率和修复率
     * @param ratios
     */
    void addBatch(List<BugValidRepairRatio> ratios);

    /**
     * 清空用户缺陷等级数量中间表
     */
    void deleteAllMid();

    /**
     * 新增用户缺陷等级数量中间表
     * @param ratios
     */
    void addBatchMid(List<MidUserBugGrade> ratios);

    /**
     * 新增缺陷密度
     */
    void addBugDensityCharts();

    /**
     * 清空缺陷密度
     */
    void deleteBugDensityCharts();

    /**
     * 清空缺陷遗留等级
     */
    void deleteAllBugLegacyGrade();

    /**
     * 新增缺陷遗留等级
     * @param legacyGrades
     */
    void addBugLegacyGrades(List<BugLegacyGrade> legacyGrades);

    /**
     * 缺陷密度
     * @param projectId
     * @return
     */
    List<BugDensityChart> queryBugDensity(String projectId);

    /**
     * 缺陷遗留数据处理
     */
    void bugLegacyGrade();

    List<ProjectDataVo> queryBugDensityByTenantId(String tenantId,List<String> projectIds);
}
