import { NIMChatroomInfo } from './ChatroomInfo';
import { NIMUser } from './User';
/**
 * 聊天室成员
 * - [相关文档](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/ChatroomMember.html#)
 */
export interface NIMCharoomMember {
  /** 聊天室 ID */
  chatroomId: NIMChatroomInfo['id'];
  /** 账号 */
  account: NIMUser['account'];

  /** 聊天室内的昵称 */
  nick: string;
  /** 聊天室内的头像 */
  avatar: string;
  /** 聊天室成员类型 */
  type: NIMChatroomMemberType;
  /**
   * 是否是游客
   * - 官方文档定义为 `String` ???
   */
  guest: boolean;
  /**
   * 是否被拉黑
   * - 官方文档定义为 `String` ???
   */
  blacked: boolean;
  /**
   * 是否被禁言
   * - 官方文档定义为 `String` ???
   */
  gaged: boolean;
  /** 级别 */
  level: number;
  /** 是否在线, 只有固定成员才能离线, 对游客而言只能是在线 */
  online: boolean;
  /** 进入聊天室的时间, 如果离线, 无该字段 */
  enterTime: number;
  /** 第三方扩展字段 */
  custom: string;
  /** 更新时间 */
  updateTime: number;
  /** 是否被临时禁言 */
  tempMuted: boolean;
  /** 临时禁言剩余时长 */
  tempMuteDuration: number;

}

/**
 * 聊天室成员类型
 * - 聊天室成员分为固定成员和游客两种。固定成员又分为房主、管理员、普通成员和受限成员四种。禁言用户和拉黑用户都属于受限用户。
 * - [相关文档](https://dev.yunxin.163.com/docs/interface/即时通讯Web端/NIMSDK-Web/ChatroomMember.html#.type)
 */
export const enum NIMChatroomMemberType {
  /** 房主 */
  owner = 'owner',
  /** 管理员 */
  manager = 'manager',
  /** 受限制, 被拉黑或者禁言 */
  restricted = 'restricted',
  /** 未设置 */
  unset = 'unset',
  /** 普通成员 */
  common = 'common',
  /** 游客 */
  guest = 'guest',
  /** 匿名非注册用户，非云信注册用户 */
  anonymous = 'anonymous',
}
