package cn.iocoder.yudao.module.qcreport.service.aiimport;
import cn.iocoder.yudao.module.qcreport.controller.admin.aiimport.vo.QcReportAiDraftReqVO;
import cn.iocoder.yudao.module.qcreport.controller.admin.aiimport.vo.QcReportAiDraftRespVO;
/**
* AI 导入 Service 接口:读文件 → 出模板草稿。
*
*
为什么是同步接口
* 一次导入要等 10~60 秒。做成异步需要任务表 + 轮询 + 线程池,而它换来的只是「用户可以先去干别的」——
* 但草稿只作参考,用户等结果和去干别的再回来,拿到的行为完全一样。为一个不改变结果的体验
* 引入一张表和一个线程池,不划算。
*
* 为什么不落库
* 草稿只给人在设计器里确认,不需要一个能按 ID 回查的实体。不落库意味着失败、重试、放弃
* 都不留下任何需要清理的行;而「保存」仍然是既有的 {@code createVersion} / {@code updateVersion},
* Schema 校验(含判定规则)那道闸门自动生效,不存在第二条落库路径。
*/
public interface QcReportAiImportService {
/**
* 识别文件,返回模板草稿。
*
* @param reqVO 请求参数(文件 blobId、组件清单、补充说明)
* @return 模板草稿,含软提示
*/
QcReportAiDraftRespVO generateDraft(QcReportAiDraftReqVO reqVO);
}