package com.njcn.gather.icd.mapping.service;

import com.njcn.gather.icd.mapping.pojo.bo.GenerateMappingResult;
import com.njcn.gather.icd.mapping.pojo.dto.GenerateFromIcdCommand;

/**
 * ICD 映射任务编排服务。
 *
 * 统一封装 ICD 解析、索引候选分析、索引绑定校验和正式映射生成流程。
 */
public interface MappingTaskService {

    /**
     * 解析 ICD 并返回索引候选结果。
     *
     * @param command ICD 文件与生成参数
     * @return 候选分析结果
     */
    GenerateMappingResult getICD(GenerateFromIcdCommand command);

    /**
     * 串联 getICD 与索引提交流程，直接返回正式提交阶段的处理结果。
     *
     * @param command ICD 文件与前端提交参数
     * @return 正式提交阶段结果
     */
    GenerateMappingResult getIcdMmsJson(GenerateFromIcdCommand command);

    /**
     * 根据前端确认后的索引绑定关系生成正式映射。
     *
     * @param command 已确认的 ICD 解析结果与索引绑定关系
     * @return 映射生成结果
     */
    GenerateMappingResult getMmsJson(GenerateFromIcdCommand command);
}
