package tech.easyflow.chatlog.domain.entity.base;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;

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

public class ChatPersistDeadLetterBase implements Serializable {

    @Id(keyType = KeyType.Generator, value = "snowFlakeId", comment = "主键")
    private BigInteger id;

    @Column(comment = "topic")
    private String topic;

    @Column(comment = "stream key")
    private String streamKey;

    @Column(comment = "stream message id")
    private String streamMessageId;

    @Column(comment = "event id")
    private String eventId;

    @Column(comment = "session id")
    private BigInteger sessionId;

    @Column(comment = "payload")
    private String payload;

    @Column(comment = "retry count")
    private Integer retryCount;

    @Column(comment = "error message")
    private String errorMessage;

    @Column(comment = "first failed at")
    private Date firstFailedAt;

    @Column(comment = "last failed at")
    private Date lastFailedAt;

    @Column(comment = "status")
    private String status;

    @Column(comment = "created")
    private Date created;

    @Column(comment = "modified")
    private Date modified;

    public BigInteger getId() {
        return id;
    }

    public void setId(BigInteger id) {
        this.id = id;
    }

    public String getTopic() {
        return topic;
    }

    public void setTopic(String topic) {
        this.topic = topic;
    }

    public String getStreamKey() {
        return streamKey;
    }

    public void setStreamKey(String streamKey) {
        this.streamKey = streamKey;
    }

    public String getStreamMessageId() {
        return streamMessageId;
    }

    public void setStreamMessageId(String streamMessageId) {
        this.streamMessageId = streamMessageId;
    }

    public String getEventId() {
        return eventId;
    }

    public void setEventId(String eventId) {
        this.eventId = eventId;
    }

    public BigInteger getSessionId() {
        return sessionId;
    }

    public void setSessionId(BigInteger sessionId) {
        this.sessionId = sessionId;
    }

    public String getPayload() {
        return payload;
    }

    public void setPayload(String payload) {
        this.payload = payload;
    }

    public Integer getRetryCount() {
        return retryCount;
    }

    public void setRetryCount(Integer retryCount) {
        this.retryCount = retryCount;
    }

    public String getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }

    public Date getFirstFailedAt() {
        return firstFailedAt;
    }

    public void setFirstFailedAt(Date firstFailedAt) {
        this.firstFailedAt = firstFailedAt;
    }

    public Date getLastFailedAt() {
        return lastFailedAt;
    }

    public void setLastFailedAt(Date lastFailedAt) {
        this.lastFailedAt = lastFailedAt;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getCreated() {
        return created;
    }

    public void setCreated(Date created) {
        this.created = created;
    }

    public Date getModified() {
        return modified;
    }

    public void setModified(Date modified) {
        this.modified = modified;
    }
}
