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 TourImMemberVo extends BaseVo {

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

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

    /**
     * 成员角色 1群主 2管理员 3普通成员。
     */
    @Schema(description = "成员角色 1群主 2管理员 3普通成员")
    private Integer groupRole;

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

    /**
     * 会话是否显示(每个群在聊天列表要不要展示) 0不显示 1显示。
     */
    @Schema(description = "会话是否显示(每个群在聊天列表要不要展示) 0不显示 1显示")
    private Integer isShow;

    /**
     * 单聊情况下对方的id。
     */
    @Schema(description = "单聊情况下对方的id")
    private Long partnerId;

    /**
     * 会话是否置顶 (每个群在聊天列表要不要置顶)  0不置顶 1 置顶。
     */
    @Schema(description = "会话是否置顶 (每个群在聊天列表要不要置顶)  0不置顶 1 置顶")
    private Integer isTop;

    /**
     * 会话是否开启免打扰 0不开启免打扰 1 开启免打扰。
     */
    @Schema(description = "会话是否开启免打扰 0不开启免打扰 1 开启免打扰")
    private Integer isNotDisturb;

    /**
     * 自己在群里的昵称。
     */
    @Schema(description = "自己在群里的昵称")
    private String groupNickname;

    /**
     * 群备注。
     */
    @Schema(description = "群备注")
    private String groupRemark;

    /**
     * 聊天背景。
     */
    @Schema(description = "聊天背景")
    private String groupBackImage;

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

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

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

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

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

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

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

    /**
     * 成员头像
     */
    @Schema(description = " headImageUrl 成员头像")
    private String headImageUrl;

    @Schema(description = "群成员加密ID")
    private String pass;
}
