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 lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
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)
    private Long id;

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

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

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

    /**
     * 数据起始时间范围 - datetime
     */
    @TableField("start_time")
    private LocalDateTime startTime;

    /**
     * 数据结束时间范围 - datetime
     */
    @TableField("end_time")
    private LocalDateTime endTime;

    /**
     * 指针时间，当前全量任务的任务执行到的时间 - datetime
     */
    @TableField("all_pointer_time")
    private LocalDateTime allPointerTime;

    /**
     * 每页大小 - double
     */
    @TableField("page_size")
    private Double pageSize;

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

    /**
     * 指针时间，当前增量任务的执行到的时间 - datetime
     */
    @TableField("inc_pointer_time")
    private LocalDateTime incPointerTime;

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

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

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

    /**
     * 入库时间 - datetime
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 入库更新时间 - datetime
     */
    @TableField("update_time")
    private Date updateTime;


}
