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

import lombok.Data;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.njcn.gather.icd.mapping.pojo.bo.icd.IcdDocument;
import com.njcn.gather.icd.mapping.pojo.enums.GenerateStatus;

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

/**
 * ICD 映射接口统一响应。
 *
 * 按接口阶段仅返回当前场景必需字段；空字段和空集合不参与序列化。
 */
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@Data
public class MappingTaskResponse {
    /** 本次接口处理状态。 */
    private GenerateStatus status;

    /** 状态说明或错误提示。 */
    private String message;

    /** 候选接口或需要重新选择索引时返回的 ICD 解析结果。 */
    private IcdDocument icdDocument;

    /** 正式生成成功后的完整映射 JSON。 */
    private String mappingJson;

    /** 生成文件落盘后的绝对路径。 */
    private String savedPath;

    /** 待绑定状态下返回的索引候选分组。 */
    private List<IndexCandidateResponse> indexCandidates = new ArrayList<IndexCandidateResponse>();

    /** 模板校验、候选分析或绑定校验问题。 */
    private List<String> problems = new ArrayList<String>();
}