package cn.reghao.autodop.common.msg;

import cn.reghao.autodop.common.msg.pub.PubMsg;
import cn.reghao.autodop.common.msg.rpc.RpcMsg;
import lombok.Data;

import java.io.Serializable;

/**
 * @author reghao
 * @date 2021-08-25 17:19:41
 */
@Data
public class Message implements Serializable {
    private static final long serialVersionUID = 1L;

    private String msgType;
    private PubMsg pubMsg;
    private RpcMsg rpcMsg;
    private long sendTime;

    public static Message pubMessage(PubMsg pubMsg) {
        Message message = new Message();
        message.setMsgType(MsgType.pub.name());
        message.setPubMsg(pubMsg);
        message.setSendTime(System.currentTimeMillis());
        return message;
    }

    public static Message rpcMessage(RpcMsg rpcMsg) {
        Message message = new Message();
        message.setMsgType(MsgType.rpc.name());
        message.setRpcMsg(rpcMsg);
        message.setSendTime(System.currentTimeMillis());
        return message;
    }
}
