import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; /// Channel Information class ChannelInfo { /// Channel ID String channelID; /// Channel Name String? channelName; /// Channel Announcement String? notification; /// Channel Introduction String? introduction; /// Channel Avatar String? faceURL; /// Creation Time int? createTime; /// Number of Channel Members int? memberCount; /// Channel Status: 0 - Normal, 1 - Blocked, 2 - Dissolved, 3 - Muted int? status; /// Creator's ID String? creatorUserID; /// Channel Type [ChannelType] int? channelType; /// Extra Information String? ex; ChannelInfo({ required this.channelID, this.channelName, this.notification, this.introduction, this.faceURL, this.createTime, this.memberCount, this.status, this.creatorUserID, this.channelType, this.ex, }); ChannelInfo.fromJson(Map json) : channelID = json['channelID'] { channelName = json['channelName']; notification = json['notification']; introduction = json['introduction']; faceURL = json['faceURL']; createTime = json['createTime']; memberCount = json['memberCount']; status = json['status']; creatorUserID = json['creatorUserID']; channelType = json['channelType']; ex = json['ex']; } Map toJson() { final data = Map(); data['channelID'] = this.channelID; data['channelName'] = this.channelName; data['notification'] = this.notification; data['introduction'] = this.introduction; data['faceURL'] = this.faceURL; data['createTime'] = this.createTime; data['memberCount'] = this.memberCount; data['status'] = this.status; data['creatorUserID'] = this.creatorUserID; data['channelType'] = this.channelType; data['ex'] = this.ex; return data; } /// Corresponding Conversation Type for Channel Type int get sessionType => ConversationType.superChannel; @override bool operator ==(Object other) => identical(this, other) || other is ChannelInfo && runtimeType == other.runtimeType && channelID == other.channelID; @override int get hashCode => channelID.hashCode; } /// Channel Member Information class ChannelMembersInfo { /// Channel ID String? channelID; /// User ID String? userID; /// Nickname String? nickname; /// Avatar String? faceURL; /// Role [ChannelRoleLevel] int? roleLevel; /// Join Time int? joinTime; /// Extra Information String? ex; /// Mute End Time (seconds) int? muteEndTime; ChannelMembersInfo({ this.channelID, this.userID, this.roleLevel, this.joinTime, this.nickname, this.faceURL, this.ex, this.muteEndTime, }); ChannelMembersInfo.fromJson(Map json) { channelID = json['channelID']; userID = json['userID']; roleLevel = json['roleLevel']; joinTime = json['joinTime']; nickname = json['nickname']; faceURL = json['faceURL']; ex = json['ex']; muteEndTime = json['muteEndTime']; } Map toJson() { final data = Map(); data['channelID'] = this.channelID; data['userID'] = this.userID; data['roleLevel'] = this.roleLevel; data['joinTime'] = this.joinTime; data['nickname'] = this.nickname; data['faceURL'] = this.faceURL; data['ex'] = this.ex; data['muteEndTime'] = this.muteEndTime; return data; } @override bool operator ==(Object other) => identical(this, other) || other is ChannelMembersInfo && runtimeType == other.runtimeType && channelID == other.channelID && userID == other.userID; @override int get hashCode => channelID.hashCode ^ userID.hashCode; }