package com.docus.server.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.docus.server.enums.StateEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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


/**
 * <p>
 * 主动任务配置重试表
 * </p>
 *
 * @author AutoGenerator
 * @since 2023-06-29
 */
@Data
@TableName("task_config_retry_log")
public class TaskConfigRetryLog implements Serializable {

    /**
     * - bigint(20)
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    @ApiModelProperty(value = "主键")
    private Long id;

    /**
     * 重试消息主键 - bigint(20)
     */
    @TableField("message_id")
    @ApiModelProperty(value = "重试消息主键")
    private Long messageId;

    /**
     * 任务名字 - varchar(255)
     */
    @TableField("name")
    @ApiModelProperty(value = "任务名字")
    private String name;

    /**
     * 任务类型。 dept，user.... - varchar(255)
     */
    @TableField("type")
    @ApiModelProperty(value = "任务类型")
    private String type;

    /**
     * 数据起始时间范围 - datetime
     */
    @TableField("start_time")
    @ApiModelProperty(value = "数据起始时间范围")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 数据结束时间范围 - datetime
     */
    @TableField("end_time")
    @ApiModelProperty(value = "数据结束时间范围")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 指针时间，当前全量任务的任务执行到的时间 - datetime
     */
    @TableField("all_pointer_time")
    @ApiModelProperty(value = "指针时间，当前全量任务的任务执行到的时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date allPointerTime;

    /**
     * 每页大小 - double
     */
    @TableField("page_size")
    @ApiModelProperty(value = "每页大小")
    private int pageSize;

    /**
     * 时间分割周期，把起始时间结束时间进行分割，单位为秒 - varchar(255)
     */
    @TableField("spilt_period")
    @ApiModelProperty(value = "时间分割周期，把起始时间结束时间进行分割，单位为秒")
    private String spiltPeriod;

    /**
     * 指针时间，当前增量任务的执行到的时间 - datetime
     */
    @TableField("inc_pointer_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "指针时间，当前增量任务的执行到的时间")
    private Date incPointerTime;

    /**
     * 任务其他参数配置 - varchar(500)
     */
    @TableField("param")
    @ApiModelProperty(value = "任务其他参数配置")
    private String param;

    /**
     * 执行状态0：成功，1:失败 - int(11)
     */
    @TableField("state")
    @ApiModelProperty(value = " 执行状态0：成功，1:失败")
    private StateEnum state;

    /**
     * 上回失败信息 - varchar(5000)
     */
    @TableField("last_error_msg")
    @ApiModelProperty(value = "上回失败信息 ")
    private String lastErrorMsg;

    /**
     * 入库时间 - datetime
     */
    @TableField("create_time")
    @ApiModelProperty(value = "入库时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

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


}
