Files
featherVoice/TUIKit/TUIRoomKit/RoomExtension/Model/Model/InviteJoinModel.swift
2025-08-08 10:49:36 +08:00

57 lines
1.8 KiB
Swift

//
// InviteJoinModel.swift
// TUIRoomKit
//
// Created by janejntang on 2023/7/3.
// Signaling Model for inviting others into the room
import Foundation
import TUICore
import RTCRoomEngine
class InviteJoinModel {
private var message: RoomMessageModel
private var inviter: TUILoginUserInfo
var platform: String = "iOS"
var version: Int = 1
var businessID: String = "ROOM_INVITE_ACTION"
var roomId: String = ""
var extInfo: String = ""
var data: [String:Any] = [:]
init(message: RoomMessageModel, inviter: TUILoginUserInfo) {
self.message = message
self.inviter = inviter
self.roomId = message.roomId
self.data = getInviteJoinModelDataDic()
}
func getDicFromInviteJoinModel(inviteJoinModel: InviteJoinModel) -> [String: Any] {
guard let dict = ["platform": inviteJoinModel.platform,
"version": inviteJoinModel.version,
"businessID": inviteJoinModel.businessID,
"roomId": inviteJoinModel.roomId,
"extInfo": inviteJoinModel.extInfo,
"data": inviteJoinModel.data,
] as? [String: Any] else { return [:] }
return dict
}
private func getInviteJoinModelDataDic() -> [String: Any] {
let messageDic = message.getDictFromMessageModel()
let inviterDic = getInviterUserInfoDic(inviter: inviter)
return ["inviter":inviterDic, "roomInfo": messageDic]
}
private func getInviterUserInfoDic(inviter: TUILoginUserInfo) -> [String: Any] {
return ["avatarUrl": inviter.avatarUrl,
"userId": inviter.userId,
"userName": inviter.userName,
]
}
deinit {
debugPrint("deinit \(self)")
}
}