package com.fs.his.param;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;

@Getter
@Setter
@ToString
public class ImMsgParam implements Serializable {

    private int MsgVersion; // 消息版本号
    private List<MsgBody> MsgBody; // 消息主体
    private String CallbackCommand; // 回调命令
    private String From_Account; // 消息发送者的帐号
    private String To_Account; // 消息接收者的帐号
    private Long MsgRandom; // 消息随机数
    private Long MsgSeq; // 消息序列号
    private Long MsgTime; // 消息发送时间
    private int SupportMessageExtension; // 支持消息扩展
    private String MsgKey; // 消息唯一标识符
    private int OnlineOnlyFlag; // 在线状态标志
    private int SendMsgResult; // 发送消息的结果
    private String ErrorInfo; // 错误信息
    private int UnreadMsgNum; // 未读消息数量
    private long EventTime; // 事件时间戳

    // Getters and setters go here
    @Data
    public static class MsgBody {
        private String MsgType; // 消息类型
        private MsgContent MsgContent; // 消息内容
        @Data
        public static class MsgContent {
            private String Text; // 文本消息内容
            private String Desc;
            private int Size; // 音频文件大小
            private int Second; // 音频时长（秒）
            private int Download_Flag; // 下载标志
            private String UUID; // 音频文件的唯一标识符
            private String Url; // 音频文件的 URL

            private int VideoSize; // 视频文件大小
            private int VideoSecond; // 视频时长（秒）
            private String VideoFormat; // 视频格式
            private int ThumbSize; // 缩略图文件大小
            private int ThumbWidth; // 缩略图宽度
            private int ThumbHeight; // 缩略图高度
            private String ThumbFormat; // 缩略图格式
            private int VideoDownloadFlag; // 视频下载标志
            private String VideoUUID; // 视频文件的唯一标识符
            private String VideoUrl; // 视频文件的 URL
            private int ThumbDownloadFlag; // 缩略图下载标志
            private String ThumbUUID; // 缩略图的唯一标识符
            private String ThumbUrl; // 缩略图的 URL

             private List<ImageInfoArray> ImageInfoArray;
            private String Data;
            private String Ext;
                 @Data
                public static class ImageInfoArray {
                    private int Type;
                    private long Size;
                    private int Width;
                    private int Height;
                    private String URL;

                 }


        }
    }
}
