package com.ruoyi.lsfx.domain.response;

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

/**
 * 获取单个文件上传状态响应(接口5)
 */
@Data
public class GetFileUploadStatusResponse {

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

    /** 状态 */
    private String status;

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

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

    @Data
    public static class FileUploadStatusData {
        /** 日志列表 */
        private List<LogItem> logs;

        /** 状态 */
        private String status;

        /** 账号ID */
        private Integer accountId;

        /** 币种 */
        private String currency;
    }

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

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

        /** 数据类型信息 [格式, 分隔符] */
        private List<String> dataTypeInfo;

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

        /** 主体名称列表(重要:用于判断是否需要生成主体) */
        private List<String> enterpriseNameList;

        /** 文件大小(字节) */
        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;

        /** 上传状态描述 */
        private String uploadStatusDesc;
    }
}
