package com.tourism.webadmin.back.vo;

import com.tourism.common.core.base.vo.BaseVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Map;

/**
 * 聊天群聊消息VO视图对象。
 *
 * @author 吃饭睡觉
 * @date 2024-09-06
 */
@Schema(description = "聊天群聊消息VO视图对象")
@Data
@EqualsAndHashCode(callSuper = true)
public class TourImMessageVo extends BaseVo {

    /**
     * id。
     */
    @Schema(description = "id")
    private String id;

    /**
     * 消息内容。
     */
    @Schema(description = "消息内容")
    private String messageContent;

    /**
     * 消息类型 0文字 1文件 2系统消息。
     */
    @Schema(description = "消息类型 0文字 1文件 2系统消息")
    private Integer messageType;

    /**
     * 聊天群组id。
     */
    @Schema(description = "聊天群组id")
    private String groupId;

    /**
     * 通知消息类型 1.单聊消息 2 群聊消息 3系统消息 4关注信息 5点赞 6评论 7评论区艾特 8文章内艾特 9访问。
     */
    @Schema(description = "通知消息类型 1.单聊消息 2 群聊消息 3系统消息 4关注信息 5点赞 6评论 7评论区艾特 8文章内艾特 9访问")
    private Integer noticeType;

    /**
     * 消息置顶/公告 0不置顶 1置顶。
     */
    @Schema(description = "消息置顶/公告 0不置顶 1置顶")
    private Integer isTop;

    /**
     * 撤回标记 0不撤回 1撤回。
     */
    @Schema(description = "撤回标记 0不撤回 1撤回")
    private Integer revocationTag;

    /**
     * 已经删除该条消息的用户。
     */
    @Schema(description = "已经删除该条消息的用户")
    private String deletedByUsers;

    /**
     * 已读该条消息的用户。
     */
    @Schema(description = "已读该条消息的用户")
    private String readByUsers;

    /**
     * groupId 字典关联数据。
     */
    @Schema(description = "groupId 字典关联数据")
    private Map<String, Object> groupIdDictMap;

    /**
     * isTop 常量字典关联数据。
     */
    @Schema(description = "isTop 常量字典关联数据")
    private Map<String, Object> isTopDictMap;

    /**
     * revocationTag 常量字典关联数据。
     */
    @Schema(description = "revocationTag 常量字典关联数据")
    private Map<String, Object> revocationTagDictMap;

    /**
     * messageType 全局字典关联数据。
     */
    @Schema(description = "messageType 全局字典关联数据")
    private Map<String, Object> messageTypeDictMap;

    /**
     * noticeType 全局字典关联数据。
     */
    @Schema(description = "noticeType 全局字典关联数据")
    private Map<String, Object> noticeTypeDictMap;

    /**
     * focusStatus 与用户的关注状态
     */
    @Schema(description = "focusStatus 与用户的关注状态")
    private Integer focusStatus;
    /**
     * messagePO 消息传输po
     */
    @Schema(description = "messagePO 消息传输po")
    private Map<String,Object> messagePO;

    @Schema(description = "用于系统消息互动消息关注消息头像")
    private String avatar;
}
