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

import com.baomidou.mybatisplus.annotation.TableField;
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-03-04
 */
@Data
@TableName("push_message_retry_history")
@EqualsAndHashCode(callSuper = true)
public class MessageRetryHistoryDO extends BaseDO {
    private Long id;

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

    /**
     * 重试序号：0=首次发送，1=第1次重试，2=第2次重试
     */
    private Integer retrySequence;

    /**
     * 使用的服务商类型
     */
    private String providerType;

    /**
     * 发送时间
     */
    private LocalDateTime sendTime;

    /**
     * 耗时（毫秒）
     */
    private Integer costTime;

    /**
     * 状态：success/failed
     */
    private String status;

    /**
     * 错误码
     */
    private String errorCode;

    /**
     * 错误信息
     */
    private String errorMsg;

    /**
     * 第三方消息ID
     */
    private String thirdPartyId;

    /**
     * 重试来源：AUTO_RETRY-系统自动重试，MANUAL_RETRY-人工手动重试
     */
    private String retrySource;
}
