package org.dromara.art.domain.vo;

import lombok.Data;
import org.dromara.art.domain.bo.ArtSchoolSubmitBo;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * 学校 JSON 导入预检结果（测试接口）
 */
@Data
public class ArtSchoolJsonImportPreviewVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 源目录
     */
    private String sourceDir;

    /**
     * 文件总数
     */
    private Integer totalFileCount;

    /**
     * 可入库数量（结构已准备，当前未执行入库）
     */
    private Integer readyCount;

    /**
     * 数据库重复数量
     */
    private Integer duplicateInDbCount;

    /**
     * 文件内重复数量
     */
    private Integer duplicateInFileCount;

    /**
     * 无效数据数量
     */
    private Integer invalidCount;

    /**
     * 文件读取失败数量
     */
    private Integer readFailCount;

    /**
     * 预检明细（按请求预览条数截断）
     */
    private List<ArtSchoolImportDetailVo> details;

    /**
     * 预构建入库对象（按请求预览条数截断）
     */
    private List<ArtSchoolSubmitBo> submitPreviewList;

    /**
     * 本次可入库总数
     */
    private Integer submitTotalCount;

    /**
     * 本次导入线程数
     */
    private Integer threadCount;

    /**
     * 是否异步执行
     */
    private Boolean async;

    /**
     * 异步任务 ID（仅异步时返回）
     */
    private String asyncTaskId;

    /**
     * 导入成功数量（同步执行时返回）
     */
    private Integer importSuccessCount;

    /**
     * 导入失败数量（同步执行时返回）
     */
    private Integer importFailCount;

    /**
     * 预留调用说明
     */
    private String serviceCallHint;
}
