package com.fs.wxcid.dto.callback;

import lombok.Data;

/**
 * 回调中的具体消息内容
 */
@Data
public class CallbackMessage {

    /** 消息 ID（整型） */
    private Long msg_id;

    /** 发送者 wxid（嵌套结构） */
    private StringWrapper from_user_name;

    /** 接收者 wxid（通常是当前账号） */
    private StringWrapper to_user_name;

    /** 消息类型：
     *  1 = 文本，
     *  3 = 图片，
     *  34 = 语音，
     *  43 = 视频，
     *  47 = 表情/动画，
     *  49 = App消息（链接、文件等），
     *  51 = 系统通知（如 lastMessage）等 */
    private Integer msg_type;

    /** 消息内容（文本或 XML） */
    private StringWrapper content;

    /** 消息状态（通常为 3） */
    private Integer status;

    /** 图片状态（通常为 1） */
    private Integer img_status;

    /** 图片缓冲区（长度为 0 表示无图） */
    private ImgBuf img_buf;

    /** 消息创建时间戳（秒） */
    private Long create_time;

    /** 消息来源 XML（包含签名、扩展信息等） */
    private String msg_source;

    /** 推送通知内容（如 "昵称 : 消息文本"） */
    private String push_content;

    /** 新版消息 ID（64位整数字符串） */
    private String new_msg_id;


    public String getFromWxId() {
        return from_user_name != null ? from_user_name.getStr() : null;
    }

    public String getToWxId() {
        return to_user_name != null ? to_user_name.getStr() : null;
    }

    public String getContentText() {
        return content != null ? content.getStr() : null;
    }
}