package com.ruoyi.business.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 对外文件打包日志对象 b_file_exchange_package_log
 * 
 * @author ruoyi
 * @date 2024-01-29
 */
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
@TableName("b_file_exchange_package_log")
public class FileExchangePackageLog implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @JsonSerialize(using= ToStringSerializer.class)
    private Long id;

    /**
     * 父主键
     */
    @TableField("parent_id")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long parentId;

    /**
     * 接口名称
     */
    @TableField("interface_name")
    private String interfaceName;

    /**
     * 接口地址
     */
    @TableField("interface_url")
    private String interfaceUrl;

    /**
     * 打包时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("package_time")
    private Date packageTime;

    /**
     * 打包时间段
     */
    @TableField(exist = false)
    private String[] packageTimePeriod;

    /**
     * 打包文件名称
     */
    @TableField("package_file_name")
    private String packageFileName;

    /**
     * 打包文件密码
     */
    @TableField("file_secret")
    private String fileSecret;

    /**
     * 是否被读取
     */
    @TableField("status")
    private String status;

    /**
     * 打包数据条数
     */
    @TableField("package_data_num")
    private int packageDataNum;

    /**
     * 打包数据来源ID
     */
    @TableField("package_source_db_id")
    private Long packageSourceDbId;

    /**
     * 打包数据来源
     */
    @TableField("package_source_db_name")
    private String packageSourceDbName;

    /**
     * 打包数据来源表
     */
    @TableField("package_source_table")
    private String packageSourceTable;

    /**
     * 打包数据来源表中文名
     */
    @TableField("package_source_table_name")
    private String packageSourceTableName;

    /**
     * 打包主键范围
     */
    @TableField("package_id_range")
    private String packageIdRange;

    /**
     * 保存路径
     */
    @TableField("file_position")
    private String filePosition;

    /**
     * 部门路径
     */
    @TableField("dept_id_path")
    private String deptIdPath;

    /**
     * 部门名称
     */
    @TableField("dept_name")
    private String deptName;

    /**
     * 创建人
     */
    @TableField("create_by")
    private String createBy;

    /**
     * 创建人ID
     */
    @TableField("create_user_id")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long createUserId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新人
     */
    @TableField("update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("update_time")
    private Date updateTime;

    /**
     * 删除人
     */
    @TableField("delete_by")
    private String deleteBy;

    /**
     * 删除时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("delete_time")
    private Date deleteTime;

    /**
     * 删除标志 0未删除，1 删除
     */
    @TableField("delete_flag")
    @TableLogic
    private String deleteFlag;


}
