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

import lombok.Data;
import com.njcn.gather.icd.mapping.pojo.bo.analysis.IndexAnalysis;
import com.njcn.gather.icd.mapping.pojo.bo.icd.IcdDocument;
import com.njcn.gather.icd.mapping.pojo.bo.mapping.MappingDocument;
import com.njcn.gather.icd.mapping.pojo.enums.GenerateStatus;

import java.util.ArrayList;
import java.util.List;

/**
 * 应用层返回对象。
 *
 * 统一封装成功、需选择索引、失败三类结果。
 */
@Data
public class GenerateMappingResult {
    /** 本次生成流程状态。 */
    private GenerateStatus status;

    /** 给前端或调用方展示的处理结果说明。 */
    private String message;

    /** ICD 中解析到的 IED 名称。 */
    private String iedName;

    /** ICD 中解析到的 LD 实例名。 */
    private String ldInst;

    /** 前端可编辑的 ICD 解析结果。 */
    private IcdDocument icdDocument;

    /** 需要人工绑定索引时返回的候选分析结果。 */
    private IndexAnalysis indexAnalysis;

    /** 生成成功后的结构化映射文档。 */
    private MappingDocument mappingDocument;

    /** 生成成功后的 JSON 字符串。 */
    private String mappingJson;

    /** saveToDisk=true 时的文件保存路径。 */
    private String savedPath;

    /** 解析、校验或生成过程中收集到的问题。 */
    private List<String> problems = new ArrayList<String>();
}