package com.zhentao.dto;

import lombok.Data;

import java.io.Serializable;
import java.util.Map;

/**
 * WebSocket消息传输对象
 */
@Data
public class WsMessage implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 消息类型：ping, pong, chat, ack, recall, typing, online, offline, read, error
     */
    private String type;

    /**
     * 消息ID
     */
    private String messageId;

    /**
     * 发送者ID
     */
    private Long fromUserId;

    /**
     * 接收者ID
     */
    private Long toUserId;

    /**
     * 消息内容类型：1-文本 2-图片 3-语音 4-视频 5-文件
     */
    private Integer messageType;

    /**
     * 消息内容
     */
    private String content;

    /**
     * 媒体URL
     */
    private String mediaUrl;

    /**
     * 缩略图URL
     */
    private String thumbnailUrl;

    /**
     * 文件大小
     */
    private Long mediaSize;

    /**
     * 时长（秒）
     */
    private Integer duration;

    /**
     * 时间戳
     */
    private Long timestamp;

    /**
     * 额外数据
     */
    private Map<String, Object> extraData;

    /**
     * 错误消息
     */
    private String errorMessage;
}





