package com.yonge.cooleshow.biz.dal.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * @Author：haonan
 * @Date：2023/8/7 15:17
 * @Filename：ImHistoryMessage
 */
@Data
@ApiModel(" ImHistoryMessage-历史消息记录")
@TableName("im_history_message")
public class ImHistoryMessage implements Serializable {

    @ApiModelProperty("可通过 msgUID 确定消息唯一")
    @TableId(value = "msgUID_")
    private String msgUID;

    @ApiModelProperty("发送者 ID")
    @TableField(value = "fromUserId_")
    private String fromUserId;

    @ApiModelProperty("接收者 ID，在消息路由中为 toUserId，当发送聊天室广播消息、全量用户落地通知时此字段为空")
    @TableField(value = "targetId_")
    private String targetId;

    @ApiModelProperty("会话类型。1（单聊会话）、2（讨论组会话）、3（群组会话）、4（聊天室会话）、5（客服会话）、6（系统通知）、7（应用公众服务）、8（公众服务）、10（超级群会话）。targetType 在 SDK 中为 ConversationType。")
    @TableField(value = "targetType_")
    private Integer targetType;

    @ApiModelProperty("根据不同的 targetType，可能是讨论组 Id、群组 ID、超级群 ID 或聊天室 ID ，如 targetType 为 1 时可忽略 GroupId")
    @TableField(value = "GroupId_")
    private String groupId;

    @ApiModelProperty("	超级群频道 ID。")
    @TableField(value = "busChannel_")
    private String busChannel;

    @ApiModelProperty("消息类型,例如文本消息 RC:TxtMsg、图片消息 RC:ImgMsg")
    @TableField(value = "classname_")
    private String classname;

    @ApiModelProperty("消息内容")
    @TableField(value = "content_")
    private String content;

    @ApiModelProperty("消息扩展")
    @TableField(value = "extraContent_")
    private String extraContent;

    @ApiModelProperty("消息时间")
    @TableField(value = "dateTime_")
    private String dateTime;

    @ApiModelProperty("消息来源，包括：iOS、Android、Websocket、MiniProgram（小程序）、PC、Server。")
    @TableField(value = "source_")
    private String source;

    @ApiModelProperty("是否被丢弃，true 为是，false 为否，只针对聊天室会话类型存在。")
    @TableField(value = "isDiscard_")
    private String isDiscard;

    @ApiModelProperty("是否含有屏蔽敏感词，true 为含有、false 为不含有。只针对聊天室会话类型存在。")
    @TableField(value = "isSensitiveWord_")
    private String isSensitiveWord;

    @ApiModelProperty("是否为被禁言后发送的消息，只针对聊天室会话类型存在。")
    @TableField(value = "isForbidden_")
    private String isForbidden;

    @ApiModelProperty("	消息是否不分发，true 为不分发、false 为分发。只针对聊天室会话类型存在。")
    @TableField(value = "isNotForward_")
    private String isNotForward;

    @ApiModelProperty("targetType 为 3 时此参数有效，显示为群组中指定接收消息的用户 ID 数组，该条消息为群组定向消息。非定向消息时内容为空，如指定的用户不在群组中内容也为空。")
    @TableField(value = "groupUserIds_")
    private String groupUserIds;

    @ApiModelProperty("App Key")
    @TableField(value = "appId_")
    private String appId;

    @ApiModelProperty("导入状态，1 （已导入）  0（未导入）")
    @TableField(value = "status_")
    private Integer status;

}