166 lines
3.7 KiB
Dart
166 lines
3.7 KiB
Dart
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<String, dynamic> 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<String, dynamic> toJson() {
|
|
final data = Map<String, dynamic>();
|
|
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<String, dynamic> 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<String, dynamic> toJson() {
|
|
final data = Map<String, dynamic>();
|
|
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;
|
|
}
|