package com.njcn.msgpush.module.push.dal.dataobject.retry;

import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.msgpush.framework.mybatis.core.dataobject.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * @author caozehui
 * @data 2026-02-27
 * @description 消息重试队列表对应数据对象
 */
@Data
@TableName("push_message_retry_queue")
@EqualsAndHashCode(callSuper = true)
public class MessageRetryQueueDO extends BaseDO {
    /**
     * 主键ID
     */
    private Long id;

    /**
     * 关联message_record的message_id
     */
    private String messageId;

    /**
     * 渠道类型
     */
    private String channel;

    /**
     * 接收者
     */
    private String receiver;

    /**
     * 已重试次数
     */
    private Integer retryCount;

    /**
     * 最大重试次数
     */
    private Integer maxRetry;

    /**
     * 下次重试时间
     */
    private LocalDateTime nextRetryTime;

    /**
     * 首次失败时间
     */
    private LocalDateTime firstFailTime;

    /**
     * 最后一次重试时间
     */
    private LocalDateTime lastRetryTime;

    /**
     * 最后失败原因
     */
    private String lastErrorMsg;
}
