import '../../flutter_openim_sdk.dart'; /// OA Notification class OANotification { /// Title String? notificationName; /// Avatar String? notificationFaceURL; /// Type int? notificationType; /// Text content String? text; /// Redirect link String? externalUrl; /// 0: Text-only notification /// 1: Text + Image notification /// 2: Text + Video notification /// 3: Text + File notification int? mixType; /// Image information PictureElem? pictureElem; /// Sound information SoundElem? soundElem; /// Video information VideoElem? videoElem; /// File information FileElem? fileElem; /// Additional field String? ex; OANotification( {this.notificationName, this.notificationFaceURL, this.notificationType, this.text, this.externalUrl, this.mixType, this.pictureElem, this.soundElem, this.videoElem, this.fileElem, this.ex}); OANotification.fromJson(Map json) { notificationName = json['notificationName']; notificationFaceURL = json['notificationFaceURL']; notificationType = json['notificationType']; text = json['text']; externalUrl = json['externalUrl']; mixType = json['mixType']; pictureElem = json['pictureElem'] != null ? PictureElem.fromJson(json['pictureElem']) : null; soundElem = json['soundElem'] != null ? SoundElem.fromJson(json['soundElem']) : null; videoElem = json['videoElem'] != null ? VideoElem.fromJson(json['videoElem']) : null; fileElem = json['fileElem'] != null ? FileElem.fromJson(json['fileElem']) : null; ex = json['ex']; } Map toJson() { final data = Map(); data['notificationName'] = notificationName; data['notificationFaceURL'] = notificationFaceURL; data['notificationType'] = notificationType; data['text'] = text; data['externalUrl'] = externalUrl; data['mixType'] = mixType; if (pictureElem != null) { data['pictureElem'] = pictureElem!.toJson(); } if (soundElem != null) { data['soundElem'] = soundElem!.toJson(); } if (videoElem != null) { data['videoElem'] = videoElem!.toJson(); } if (fileElem != null) { data['fileElem'] = fileElem!.toJson(); } data['ex'] = ex; return data; } } /// Group Event Notification class GroupNotification { /// Group information GroupInfo? group; /// Current event operator information GroupMembersInfo? opUser; /// Group owner information GroupMembersInfo? groupOwnerUser; /// List of affected group members List? memberList; GroupNotification({ this.group, this.opUser, this.groupOwnerUser, this.memberList, }); GroupNotification.fromJson(Map json) { group = json['group'] != null ? GroupInfo.fromJson(json['group']) : null; opUser = json['opUser'] != null ? GroupMembersInfo.fromJson(json['opUser']) : null; groupOwnerUser = json['groupOwnerUser'] != null ? GroupMembersInfo.fromJson(json['groupOwnerUser']) : null; if (json['memberList'] != null) { memberList = []; json['memberList'].forEach((v) { memberList!.add(GroupMembersInfo.fromJson(v)); }); } } Map toJson() { final data = Map(); if (group != null) { data['group'] = group!.toJson(); } if (opUser != null) { data['opUser'] = opUser!.toJson(); } if (groupOwnerUser != null) { data['groupOwnerUser'] = groupOwnerUser!.toJson(); } if (memberList != null) { data['memberList'] = memberList!.map((v) => v.toJson()).toList(); } return data; } } /// User Invited to Join Group Notification class InvitedJoinGroupNotification { /// Group information GroupInfo? group; /// Operator information GroupMembersInfo? opUser; /// Inviter information GroupMembersInfo? inviterUser; /// List of members invited to join the group List? invitedUserList; InvitedJoinGroupNotification({this.group, this.opUser, this.invitedUserList}); InvitedJoinGroupNotification.fromJson(Map json) { group = json['group'] != null ? GroupInfo.fromJson(json['group']) : null; opUser = json['opUser'] != null ? GroupMembersInfo.fromJson(json['opUser']) : null; inviterUser = json['inviterUser'] != null ? GroupMembersInfo.fromJson(json['inviterUser']) : null; if (json['invitedUserList'] != null) { invitedUserList = []; json['invitedUserList'].forEach((v) { invitedUserList!.add(GroupMembersInfo.fromJson(v)); }); } } Map toJson() { final Map data = {}; if (group != null) { data['group'] = group!.toJson(); } if (opUser != null) { data['opUser'] = opUser!.toJson(); } if (inviterUser != null) { data['inviterUser'] = inviterUser!.toJson(); } if (invitedUserList != null) { data['invitedUserList'] = invitedUserList!.map((v) => v.toJson()).toList(); } return data; } } /// Group Member Kicked Notification class KickedGroupMemeberNotification { /// Group information GroupInfo? group; /// Operator information GroupMembersInfo? opUser; /// List of members kicked from the group List? kickedUserList; KickedGroupMemeberNotification({this.group, this.opUser, this.kickedUserList}); KickedGroupMemeberNotification.fromJson(Map json) { group = json['group'] != null ? GroupInfo.fromJson(json['group']) : null; opUser = json['opUser'] != null ? GroupMembersInfo.fromJson(json['opUser']) : null; if (json['kickedUserList'] != null) { kickedUserList = []; json['kickedUserList'].forEach((v) { kickedUserList!.add(GroupMembersInfo.fromJson(v)); }); } } Map toJson() { final Map data = new Map(); if (group != null) { data['group'] = group!.toJson(); } if (opUser != null) { data['opUser'] = opUser!.toJson(); } if (kickedUserList != null) { data['kickedUserList'] = kickedUserList!.map((v) => v.toJson()).toList(); } return data; } } /// Quit Group Notification class QuitGroupNotification { /// Group information GroupInfo? group; /// Information of the member who quit the group GroupMembersInfo? quitUser; QuitGroupNotification({this.group, this.quitUser}); QuitGroupNotification.fromJson(Map json) { group = json['group'] != null ? GroupInfo.fromJson(json['group']) : null; quitUser = json['quitUser'] != null ? GroupMembersInfo.fromJson(json['quitUser']) : null; } Map toJson() { final data = Map(); if (group != null) { data['group'] = group!.toJson(); } if (quitUser != null) { data['quitUser'] = quitUser!.toJson(); } return data; } } /// Enter Group Notification class EnterGroupNotification { /// Group information GroupInfo? group; /// Information of the member who entered the group GroupMembersInfo? entrantUser; EnterGroupNotification({this.group, this.entrantUser}); EnterGroupNotification.fromJson(Map json) { group = json['group'] != null ? GroupInfo.fromJson(json['group']) : null; entrantUser = json['entrantUser'] != null ? GroupMembersInfo.fromJson(json['entrantUser']) : null; } Map toJson() { final data = Map(); if (group != null) { data['group'] = group!.toJson(); } if (entrantUser != null) { data['entrantUser'] = entrantUser!.toJson(); } return data; } } /// Group Rights Transfer Notification class GroupRightsTransferNoticication { /// Group information GroupInfo? group; /// Operator information GroupMembersInfo? opUser; /// New group owner information GroupMembersInfo? newGroupOwner; GroupRightsTransferNoticication({ this.group, this.opUser, this.newGroupOwner, }); GroupRightsTransferNoticication.fromJson(Map json) { group = json['group'] != null ? GroupInfo.fromJson(json['group']) : null; opUser = json['opUser'] != null ? GroupMembersInfo.fromJson(json['opUser']) : null; newGroupOwner = json['newGroupOwner'] != null ? GroupMembersInfo.fromJson(json['newGroupOwner']) : null; } Map toJson() { final data = Map(); if (group != null) { data['group'] = group!.toJson(); } if (opUser != null) { data['opUser'] = opUser!.toJson(); } if (newGroupOwner != null) { data['newGroupOwner'] = newGroupOwner!.toJson(); } return data; } } /// Mute Member Notification class MuteMemberNotification { /// Group information GroupInfo? group; /// Operator information GroupMembersInfo? opUser; /// Muted member information GroupMembersInfo? mutedUser; /// Mute duration in seconds int? mutedSeconds; MuteMemberNotification({ this.group, this.opUser, this.mutedUser, this.mutedSeconds, }); MuteMemberNotification.fromJson(Map json) { group = json['group'] != null ? GroupInfo.fromJson(json['group']) : null; opUser = json['opUser'] != null ? GroupMembersInfo.fromJson(json['opUser']) : null; mutedUser = json['mutedUser'] != null ? GroupMembersInfo.fromJson(json['mutedUser']) : null; mutedSeconds = json['mutedSeconds']; } Map toJson() { final data = Map(); if (group != null) { data['group'] = group!.toJson(); } if (opUser != null) { data['opUser'] = opUser!.toJson(); } if (mutedUser != null) { data['mutedUser'] = mutedUser!.toJson(); } data['mutedSeconds'] = mutedSeconds; return data; } } /// Burn After Reading Notification class BurnAfterReadingNotification { /// Receiver String? recvID; /// Sender String? sendID; /// Whether enabled bool? isPrivate; BurnAfterReadingNotification({this.recvID, this.sendID, this.isPrivate}); BurnAfterReadingNotification.fromJson(Map json) { recvID = json['recvID']; sendID = json['sendID']; isPrivate = json['isPrivate']; } Map toJson() { final data = Map(); data['recvID'] = recvID; data['sendID'] = sendID; data['isPrivate'] = isPrivate; return data; } } /// Group Member Information Changed Notification class GroupMemberInfoChangedNotification { /// Group information GroupInfo? group; /// Operator information GroupMembersInfo? opUser; /// Member with changed information GroupMembersInfo? changedUser; GroupMemberInfoChangedNotification({ this.group, this.opUser, this.changedUser, }); GroupMemberInfoChangedNotification.fromJson(Map json) { group = json['group'] != null ? GroupInfo.fromJson(json['group']) : null; opUser = json['opUser'] != null ? GroupMembersInfo.fromJson(json['opUser']) : null; changedUser = json['changedUser'] != null ? GroupMembersInfo.fromJson(json['changedUser']) : null; } Map toJson() { final data = Map(); if (group != null) { data['group'] = group!.toJson(); } if (opUser != null) { data['opUser'] = opUser!.toJson(); } if (changedUser != null) { data['changedUser'] = changedUser!.toJson(); } return data; } }