package com.ruoyi.lsfx.domain.response;

import lombok.Data;
import java.util.List;

/**
 * 检查文件解析状态响应(匹配新文档4.5节)
 */
@Data
public class CheckParseStatusResponse {

    /** 返回码 */
    private String code;

    /** 状态 */
    private String status;

    /** 成功标识 */
    private Boolean successResponse;

    /** 响应数据 */
    private ParseStatusData data;

    @Data
    public static class ParseStatusData {
        /** 是否正在解析(true=解析中, false=解析结束) - 关键字段 */
        private Boolean parsing;

        /** 待处理文件列表 */
        private List<PendingItem> pendingList;
    }

    @Data
    public static class PendingItem {
        /** 账号列表 */
        private List<String> accountNoList;

        /** 银行名称 */
        private String bankName;

        /** 数据类型信息 */
        private List<String> dataTypeInfo;

        /** 下载文件名 */
        private String downloadFileName;

        /** 企业名称列表 */
        private List<String> enterpriseNameList;

        /** 文件包ID */
        private String filePackageId;

        /** 文件大小(字节) */
        private Long fileSize;

        /** 上传用户ID */
        private Integer fileUploadBy;

        /** 上传用户名 */
        private String fileUploadByUserName;

        /** 上传时间 */
        private String fileUploadTime;

        /** 是否拆分 */
        private Integer isSplit;

        /** 企业ID */
        private Integer leId;

        /** 文件ID(重要) */
        private Integer logId;

        /** 日志元数据 */
        private String logMeta;

        /** 日志类型 */
        private String logType;

        /** 登录企业ID */
        private Integer loginLeId;

        /** 丢失的表头 */
        private List<String> lostHeader;

        /** 真实银行名称 */
        private String realBankName;

        /** 行数 */
        private Integer rows;

        /** 来源 */
        private String source;

        /** 状态(-5表示成功) */
        private Integer status;

        /** 模板名称 */
        private String templateName;

        /** 总记录数 */
        private Integer totalRecords;

        /** 交易结束日期ID */
        private Integer trxDateEndId;

        /** 交易开始日期ID */
        private Integer trxDateStartId;

        /** 上传文件名 */
        private String uploadFileName;

        /** 上传状态描述(data.wait.confirm.newaccount表示成功) */
        private String uploadStatusDesc;
    }
}
