package com.chinaweal.aiccs.aiccs.abnormal.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.sql.Timestamp;

/**
 * <p>
 * 文件上传记录表
 * </p>
 *
 *
 * @author lwd
 * @since 2025-11-06
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("AICCS.FILE_UPLOAD_RECORD") // 匹配表的schema前缀AICCS
public class FileUploadRecord extends Model<FileUploadRecord> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID（推荐UUID）
     */
    @TableField("ID")
    private String id;

    /**
     * 主体身份代码
     */
    @TableField("PRIPID")
    private String pripid;

    /**
     * 统一社会信用代码
     */
    @TableField("UNISCID")
    private String uniscid;

    /**
     * 企业（机构）名称
     */
    @TableField("ENTNAME")
    private String entname;

    /**
     * 注册号
     */
    @TableField("REGNO")
    private String regno;

    /**
     * 文件路径（如/data/upload/xxx.zip）
     */
    @TableField("UPLOAD_DIR")
    private String uploadDir;

    /**
     * 上传时间（默认当前时间）
     */
    @TableField("CREATE_TIME")
    private Timestamp createTime;

    /**
     * 更新时间（默认当前时间，更新时自动刷新）
     */
    @TableField("UPDATE_TIME")
    private Timestamp updateTime;

    /**
     * 是否上传成功（Y=成功，N=未成功，默认未成功）
     */
    @TableField("ISYN")
    private String isyn;

    /**
     * 迁移类型（1=数据迁出，2=数据迁入）
     */
    @TableField("MIGRATIONTYPE")
    private Integer migrationType;

    /**
     * 对账参数（记录第三方对账接口的入参）
     */
    @TableField("RECONCILIATIONPAR")
    private String reconciliationPar;

    /**
     * 流程记录（记录三个阶段的处理状态） MIN_ID
     */
    @TableField("PROCESSRECORD")
    private String processRecord;

    /**
     * 迁入id
     */
    @TableField("MIN_ID")
    private String minId;

    /**
     * 迁出id
     */
    @TableField("MOUT_ID")
    private String moutId;

    /**
     * 迁出省份 业务用
     */
    @TableField(exist = false)
    private String prOut;

    /**
     * 迁入省份 业务用
     */
    @TableField(exist = false)
    private String prIn;

    /**
     * 迁入前的企业名称
     */
    @TableField(exist = false)
    private String entNamebf;

    @Override
    protected Serializable pkVal() {
        // 表中ID为主键，返回主键字段
        return id;
    }
}
