package com.njcn.gather.icd.mapping.pojo.bo.analysis;

import lombok.Data;
import java.util.ArrayList;
import java.util.List;

/**
 * 索引候选分组。
 *
 * 说明：
 * 1. 一条候选对应一个业务分组，例如：统计数据、实时数据；
 * 2. 一个业务分组下可以包含多个报告；
 * 3. 这里不仅保存返回给前端的候选项，也保存从 DefaultCfg.ReportList 带下来的配置项，
 *    供后续 MappingGenerationService 直接使用，避免“二次查模板”失败。
 */
@Data
public class IndexCandidate {

    /** 分组唯一键。 */
    private String groupKey;

    /** 分组描述。 */
    private String groupDesc;

    /** 该分组下实际匹配到的报告数量。 */
    private int reportCount;

    /** DefaultCfg.txt 中该分组可用的标签模板。 */
    private List<String> templateLabels = new ArrayList<String>();

    /** 当前分组下匹配到的报告列表。 */
    private List<IndexCandidateReportItem> reports = new ArrayList<IndexCandidateReportItem>();

    /**
     * DefaultCfg.ReportList.inst
     * 例如：01 / 02 / 03 / 04
     */
    private String reportInst;

    /**
     * DefaultCfg.ReportList.Select
     * 例如：DataStatFileMap / DataRealFileMap / FlickerFileMap
     */
    private String select;

    /**
     * DefaultCfg.ReportList.TrgOps
     * 例如：40 / 96
     */
    private String trgOps;
}