package cn.sikey.websocket.message;

import cn.sikey.websocket.enums.MessageType;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 基础消息
 */
@Data
@Accessors(chain = true)
@ToString(callSuper = true)
public class BasicMessage {

    /**
     * 消息类型
     *
     */
    private MessageType msgType;

    /**
     * 应答ID <br/>
     * Websocket 服务在将消息发送之前，需要查询 message_recv 表将数据带上
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long ackId;

    /**
     * 消息ID
     */
    private Long msgId;

    /**
     * 接收人ID
     */
    private String recvId;

    /**
     * 发送人ID
     */
    private String senderId;

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

    /**
     * 消息内容 <br/>
     * 子类一般会重载这个字段
     */
    private Object content;
}
