MORtmEntity.h 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692
  1. //
  2. // MOTtmEntiry.h
  3. // MiMoLive
  4. //
  5. // Created by SuperC on 2023/11/21.
  6. //
  7. #import <Foundation/Foundation.h>
  8. #import "MOGiftInfo.h"
  9. #import "MORoomDataModels.h"
  10. #import "MOUserBase.h"
  11. #import "MORoomDesire.h"
  12. NS_ASSUME_NONNULL_BEGIN
  13. @class MORtmToast, MORtmPkV2Status,
  14. MORtmPkV2StatusExpand, MORtmLivePKLinkInvite,
  15. MOLinePKViewModel;
  16. typedef enum : NSUInteger {
  17. MORtmEnter = 0, //进入房间
  18. MORtmExit = 1, //退出房间
  19. MORtmChat = 2, //发言
  20. MORtmGift = 3, //礼物
  21. MORtmLink = 4, //秀场直播 - 连麦
  22. MORtmKick = 5, //秀场直播 - 踢人
  23. MORtmChatSilence = 6, //秀场直播 - 禁言
  24. MORtmChatManage = 7, //秀场直播 - 禁言
  25. MORtmGiftEndNum = 8, //礼物数量提示
  26. MORtmRoomTip = 9, //直播间提示
  27. MORoomCleanRtmTip = 10, //直播间清屏提示
  28. MOLikeComboTip = 11, //直播间点赞连击
  29. MOWishListTip = 12, //心愿单更新数据
  30. MOChangeRoomType = 13, //房间转换
  31. MORoomTipTwo = 14, //通用提示类型
  32. MORoomVoiceTranslate = 15, //直播间语音识别翻译
  33. MORtmMicApply = 100, //麦位 - 申请上麦
  34. MORtmMicActive = 101, //麦位 - 激活(上麦)
  35. MORtmMicLeave = 102, //麦位 - 下麦
  36. MORtmMicAuditPass = 103, //麦位审核 - 通过
  37. MORtmMicAuditRefuse = 104, //麦位审核 - 拒绝
  38. MORtmMicInvite = 105, //麦位邀请 - 邀请
  39. MORtmMicAccept = 106, //麦位申请 - 接受邀请
  40. MORtmMicRefuse = 107, //麦位邀请 - 拒绝邀请
  41. MOtRtmAudioApply = 200, //语音 - 申请发言
  42. MORtmAudioOpen = 201, //语音 - 打开麦克风
  43. MORtmAudioClose = 202, //语音 - 关闭麦克风
  44. MORtmAudioSilence = 203, //语音 - 被禁言
  45. MORtmAudioUndo = 204, //语言 - 禁言解除
  46. MOPKStatus = 300, //PK相关信息
  47. RoomClose = 500, //房间关闭
  48. //带 Peer 的,均为点对点消息
  49. PeerPK = 600, //PK 邀请
  50. PeerPKMatch = 601, //PK 匹配成功
  51. PeerPKQuit = 602, //PK 中途退出
  52. PeerPKFinish = 603, //PK 正常结束退出
  53. SystemOrder = 1000, //系统指令
  54. SystemLiveUpdate = 1001, //房间信息更新指令 data 结构
  55. SystemTipMsg = 10001, //系统提示
  56. SystemTipVip = 10002, //会员提示
  57. SystemTipChat = 10003, //聊天提示
  58. SystemTipGift = 10004, //送礼提示
  59. SystemTipGetRed = 10005, //领取红包提示
  60. SystemTipNormalBlue = 10006, //通用蓝色提示
  61. SystemTipRedRain = 10007, //红包雨提示
  62. SystemTipHitDiamond = 10008, //礼物暴击
  63. SystemTipBlindBox = 10009, //盲盒礼物装扮通知
  64. }MORtmContentType;
  65. @interface MORtmFanBean : NSObject
  66. @property (nonatomic, assign) NSInteger level;
  67. @property (nonatomic, copy) NSString *name;
  68. @end
  69. @interface MORtmVipBean : NSObject
  70. @property (nonatomic, assign) NSInteger type;
  71. @property (nonatomic, copy) NSString *name;
  72. @end
  73. @interface MORtmFamilyBean : NSObject
  74. @property (nonatomic, assign) NSInteger level;
  75. @property (nonatomic, copy) NSString *name;
  76. @property (nonatomic, copy) NSString *nameplate;
  77. @end
  78. @interface MORtmHeaddress : NSObject
  79. @property (nonatomic, assign) NSInteger type;//头饰 - 头饰类型(0=无资源文件,1=动态webp,2=SVGA,3=VAP)
  80. @property (nonatomic, copy) NSString *res;//头饰
  81. @end
  82. @interface MORtmDressing : NSObject
  83. @property (nonatomic, assign) NSInteger bubble;//气泡code
  84. @property (nonatomic, assign) NSInteger entryBar;// 入场座驾 Code
  85. @property (nonatomic, assign) NSInteger cardFrame;// 名片框 Code
  86. @property (nonatomic, assign) NSInteger enterFloating;// 进场飘屏 Code
  87. @property (nonatomic, assign) NSInteger rewardBanner;// 打赏横幅 Code
  88. @property (nonatomic, assign) NSInteger linkMicFrame;// 连麦边框 Code
  89. @property (nonatomic, assign) NSInteger liveBarrage;// 直播弹幕 Code
  90. @end
  91. @interface MORtmUser : NSObject
  92. @property (nonatomic, assign) NSInteger level;
  93. @property (nonatomic, copy) NSString *userId;
  94. @property (nonatomic, copy) NSString *username;
  95. @property (nonatomic, assign) NSInteger bubble; //气泡类型
  96. @property (nonatomic, copy) NSString *headress;//头饰
  97. @property (nonatomic, copy) NSString *avatar;
  98. @property (nonatomic, assign) NSInteger agoraId;
  99. @property (nonatomic, strong) MORtmVipBean *vip;
  100. @property (nonatomic, strong) MORtmFanBean *fans;
  101. @property (nonatomic, strong) MORtmFamilyBean *family;
  102. @property (nonatomic, assign) NSInteger wealthMedal;//财富勋章
  103. @property (nonatomic, assign) NSInteger rides;//座驾
  104. //RtmRoomUser
  105. @property (nonatomic, copy) NSString *id;
  106. @property (nonatomic, copy) NSString *nickname;
  107. @property (nonatomic, copy) NSString *userNo;//用户编号
  108. @property (nonatomic, strong) NSArray *medalCodeList;//勋章Code
  109. @property (nonatomic, strong) MORtmHeaddress *headressObject;//头饰对象 - APP发送RTM用这个
  110. @property (nonatomic, strong) MORtmHeaddress *headdress;//头饰对象 - 接受杨总的推送
  111. @property (nonatomic, strong) MORtmDressing *dressing;//装饰类
  112. @property (nonatomic, assign) NSInteger enterBarPlayType;//进场动画信息播放类型. 0=未知,1=后景播放,2=前景播放
  113. @property (nonatomic, assign) NSInteger enterFloatingSkinType;//进场条皮肤类型. 0=未知,1=普通皮肤,2=神豪皮肤
  114. @property (nonatomic, assign) BOOL enterFloatingAvatar;//进场条皮肤是否携带头像
  115. @end
  116. //礼物返钻
  117. @interface MORtmGiftRebate : NSObject
  118. @property (nonatomic, strong) MORtmUser *user;
  119. @property (nonatomic, strong) MORtmUser *anchor;
  120. @property (nonatomic, assign) NSInteger diamond;//返钻数量
  121. @property (nonatomic, assign) NSInteger multiple;//返钻倍数
  122. @property (nonatomic, assign) NSInteger giftCode;
  123. @property (nonatomic, assign) BOOL living;
  124. @property (nonatomic, copy) NSString *roomId;
  125. //Diamond Winner活动
  126. //类型(1=免费,2=收费)
  127. @property (nonatomic, assign) NSInteger type;
  128. @property (nonatomic, copy) NSString *period;//期数
  129. @property (nonatomic, copy) NSString *periodId;//期数
  130. @end
  131. @interface MORedEnvelopeObject : NSObject
  132. @property (nonatomic, copy) NSString *redEnvelopeId;
  133. @property (nonatomic, copy) NSString *senderNickname;
  134. @property (nonatomic, assign) double serverTime;
  135. @property (nonatomic, assign) double startTime;
  136. @property (nonatomic, copy) NSString *sendUserId;
  137. @property (nonatomic, copy) NSString *roomId;
  138. @property (nonatomic, copy) NSString *senderAvatar;
  139. @end
  140. @interface MORtmRoomResolution : NSObject
  141. /**
  142. 分辨率
  143. 0->VideoEncoderConfiguration.VD_960x720. (720P)
  144. 1 -> VideoEncoderConfiguration.VD_960x540(540P)
  145. 2 -> VideoEncoderConfiguration.VD_640x480(480P)
  146. 3-> VideoEncoderConfiguration.VD_480x360(360P)
  147. */
  148. @property (nonatomic, assign) NSInteger resolution;
  149. @end
  150. @interface MORtmFlexActivityPiggy : NSObject
  151. @property (nonatomic, assign) NSInteger diamond;//钻石数
  152. @property (nonatomic, assign) int type;//类型(1=礼物,2=游戏)
  153. @end
  154. @interface MORtmUserDialogItem : NSObject
  155. @property (nonatomic, assign) int type;// 1.钻石,2=道具,3=礼物,4=只显示图片+名称
  156. @property (nonatomic, copy) NSString *name;//名称
  157. @property (nonatomic, copy) NSString *img;//图片
  158. @property (nonatomic, assign) NSInteger amount;//1=钻石=数量,2=道具=天数,3=礼物=数量,4=不显示
  159. @end
  160. @interface MORtmUserDialog : NSObject
  161. @property (nonatomic, copy) NSString *backgroundImg;//背景图
  162. @property (nonatomic, assign) double giftTopNum;//礼物top位置百分百 (0.5就是顶部居中 0.6就是距离顶部0.6百分比)
  163. @property (nonatomic, copy) NSString *iconBackgroundImg;//图标背景图片
  164. @property (nonatomic, copy) NSString *iconTextColor;//背景图 ("FFFFFF" // RGB (默认白色) #自己拼)
  165. @property (nonatomic, strong) NSArray<MORtmUserDialogItem *> *iconItems;//麦位信息变化, 返回变化的麦位信息
  166. @end
  167. //礼物返钻
  168. @interface MORtmLiveRoomViewer : NSObject
  169. /** 用户ID */
  170. @property (nonatomic, copy) NSString *i;
  171. /** 用户头像 */
  172. @property (nonatomic, copy) NSString *a;
  173. /** 用户装饰 */
  174. @property (nonatomic, copy) NSString *b;
  175. /** 用户装扮是否动画 */
  176. @property (nonatomic, assign) BOOL d;
  177. /** 用户头饰类型(0=无动效,1=动态WEBP,2=SGVA,3=VAP) */
  178. @property (nonatomic, assign) NSInteger t;
  179. /** 用户头饰资源 */
  180. @property (nonatomic, copy) NSString *r;
  181. @end
  182. @interface MORTMLinkMic : NSObject
  183. /** 变化的位置 */
  184. @property (nonatomic, assign) NSInteger idx;
  185. /** 用户信息 */
  186. @property (nonatomic, strong) MORtmUser *user;
  187. /** 麦位是否锁定 */
  188. @property (nonatomic, assign) BOOL lock;
  189. /** 麦上用户 - 是否使用视频 */
  190. @property (nonatomic, assign) BOOL video1;
  191. /** 麦上用户 - 主播是否允许使用视频 */
  192. @property (nonatomic, assign) BOOL video2;
  193. /** 麦上用户 - 是否使用音频 */
  194. @property (nonatomic, assign) BOOL audio1;
  195. /** 麦上用户 - 主播是否允许使用音频 */
  196. @property (nonatomic, assign) BOOL audio2;
  197. /** 是否房管 */
  198. @property (nonatomic, assign) BOOL admin;
  199. @property (nonatomic, assign) double goldenBean;
  200. /** 上麦时间 */
  201. @property (nonatomic, assign) double uptime;
  202. @end
  203. @interface MORtmWishList : NSObject
  204. @property (nonatomic, assign) NSInteger giftCode;
  205. @property (nonatomic, assign) NSInteger num;
  206. @property (nonatomic, assign) NSInteger complete;
  207. @property (nonatomic, assign) BOOL done;
  208. @end
  209. //粉丝团
  210. @interface MORtmFansClub : NSObject
  211. @property (nonatomic, copy) NSString *id;// 粉丝团ID
  212. @property (nonatomic, copy) NSString *name;// 粉丝团名称
  213. @property (nonatomic, assign) NSInteger level;// 粉丝团等级
  214. @end
  215. @interface MORtmOpenVipNotice : NSObject
  216. @property (nonatomic, assign) NSInteger vipLevel;//1-6
  217. @property (nonatomic, assign) NSInteger buyType;//1:购买 2:续费 3:升级
  218. @property (nonatomic, assign) NSInteger floatType;//1:房间.小 2:房间.中 3:全站中 4:全站大
  219. @end
  220. @interface MORtmUserLevelUpgrade : NSObject
  221. @property (nonatomic, assign) NSInteger afterLevel;// 提升后的等级
  222. @property (nonatomic, assign) NSInteger beforeLevel;// 提升前的等级
  223. @property (nonatomic, assign) NSInteger noticeType;// 通知类型(1=仅自己、2=房间、3=全频道)
  224. @property (nonatomic, copy) NSString *rewardThumbnail;// 奖励缩略图
  225. @property (nonatomic, assign) NSInteger effectsType;// 图片类型
  226. @property (nonatomic, copy) NSString *effectsUrl;//特效资源
  227. @end
  228. @interface MORtmFastGive : NSObject
  229. @property (nonatomic, copy) NSString *giftId;//礼物ID
  230. @property (nonatomic, assign) NSInteger diamond;//礼物钻石价格
  231. @property (nonatomic, copy) NSString *giftName;//礼物名称
  232. /**
  233. * 当 userNo 不为空的时候 说明本条消息 是推送给 userNo 对应用户的,其他人无需处理
  234. * 为空的时候 所有人可以处理
  235. */
  236. @property (nonatomic, copy) NSString *userNo;
  237. @property (nonatomic, assign) NSInteger skinCode;//皮肤编码
  238. @property (nonatomic, copy) NSString *giftImage;
  239. @end
  240. @interface MORtmFollowGive : NSObject
  241. @property (nonatomic, copy) NSString *giftId;//礼物ID
  242. @property (nonatomic, assign) NSInteger diamond;//礼物钻石价格
  243. @property (nonatomic, copy) NSString *giftName;//礼物名称
  244. @property (nonatomic, assign) NSInteger type;//1:礼物雨 2:里程碑 3:直播间活跃
  245. @property (nonatomic, assign) NSInteger milestone;//type=2 里程碑的时候 本字段有效, 里程碑 数量
  246. @property (nonatomic, assign) NSInteger skinCode;//皮肤编码
  247. @property (nonatomic, copy) NSString *giftImage;
  248. @end
  249. @interface MORtmRoomDesireDone : NSObject
  250. @property (nonatomic, copy) NSString *giftId;//礼物ID
  251. @property (nonatomic, assign) NSInteger giftCode;//礼物上架Code
  252. @property (nonatomic, copy) NSString *giftImg;//礼物图片
  253. @property (nonatomic, strong) MORtmUser *sender;
  254. @end
  255. @interface MORtmBlindboxGift : NSObject
  256. @property (nonatomic, copy) NSString *giftId;//礼物id
  257. @property (nonatomic, assign) int giftCode;
  258. @property (nonatomic, copy) NSString *giftImg;
  259. @property (nonatomic, assign) NSInteger amount;
  260. @end
  261. @interface MORtmBlindboxDrawResult : NSObject
  262. /**
  263. * 1:仅自己可见
  264. * 2:直播间全员可见
  265. * 3:全平台直播可见
  266. */
  267. @property (nonatomic, assign) int noticeType;
  268. @property (nonatomic, copy) NSString *userNo;
  269. @property (nonatomic, copy) NSString *nickname;
  270. @property (nonatomic, copy) NSString *avatar;
  271. @property (nonatomic, copy) NSString *roomId;
  272. @property (nonatomic, copy) NSString *userId;
  273. @property (nonatomic, copy) NSArray<NSString *> *propNotices;//装扮通知信息流列表-纯文字
  274. @property (nonatomic, copy) NSArray<MORtmBlindboxGift *> *list;
  275. @property (nonatomic, assign) BOOL isShowGift;//是否显示礼物信息, NO代表显示装扮信息
  276. @property (nonatomic, strong) NSMutableAttributedString *contentAtttrString;//cell的富文本内容
  277. @end
  278. @interface MORtmGiftReturnForMultiple : NSObject
  279. @property (nonatomic, strong) MORtmUser *user;//用户信息
  280. @property (nonatomic, copy) NSString *multiple;//返钻倍数
  281. @property (nonatomic, assign) NSInteger diamond;//返还钻石
  282. @property (nonatomic, assign) NSInteger giftCode;//礼物code
  283. @property (nonatomic, copy) NSString *roomId;//返钻获得的直播间ID
  284. @end
  285. @interface MORtmTranslate : NSObject
  286. @property (nonatomic, assign) NSInteger taskId;// 任务ID
  287. @property (nonatomic, copy) NSString *language;// 语言
  288. @property (nonatomic, copy) NSString *result;// 翻译结果
  289. @end
  290. @interface MORtmJosnEntity : NSObject
  291. //连麦
  292. //连麦类型(1=视频连麦,2=语音连麦)
  293. //系统指令 (0:关闭直播间 1:指定用户禁言 2:解禁 3:踢出直播间用户)
  294. //RtmRoomTip 1: 关注 2: PK 3:禁言
  295. //MOLikeComboTip 1首次点赞提示 2点赞连击(两秒钟)
  296. //RoomTipTwo 1: 用户升级 2: 直播间内开通VIP 3: 添加管理员
  297. @property (nonatomic, assign) NSInteger type;
  298. //连麦
  299. //状态 0:待审核 1:取消(观众) 2:同意(主播&管理员) 3:拒绝(主播&管理员) 4:挂断 5:上麦) 6, 主播邀请 7, 多人邀请- 用户同意
  300. //Pk 邀请
  301. //状态, 0:待处理 1:取消 2:同意 3:拒绝
  302. //PK状态
  303. //0:就绪 1:PK中 2:惩罚 3:结束
  304. //频道通知
  305. // 1: 关注 (1关注 0取关) 2: PK(0:失败 1:胜利 2:自己投降3:对方投降) 3:(0解除禁言 1禁言)
  306. @property (nonatomic, assign) NSInteger status;
  307. //上麦用户的声网ID
  308. @property (nonatomic, assign) NSInteger agoraId;
  309. @property (nonatomic, copy) NSString *userId;
  310. @property (nonatomic, copy) NSString *userName;
  311. @property (nonatomic, copy) NSString *avatar;
  312. @property (nonatomic, copy) NSString *pkSecret;
  313. @property (nonatomic, assign) NSInteger seatNum;//麦位
  314. @property (nonatomic, assign) BOOL video1;//用户 - 麦位是否启用视频
  315. @property (nonatomic, assign) BOOL video2;//主播 - 麦位是否启用视频
  316. @property (nonatomic, assign) BOOL audio1;//用户 - 麦位是否启用音频
  317. @property (nonatomic, assign) BOOL audio2;//主播 - 麦位是否启用音频
  318. @property (nonatomic, assign) BOOL admin;//是否房管
  319. @property (nonatomic, strong) MORtmDressing *dressing;//装饰类
  320. @property (nonatomic, copy) NSString *invite;//多人连麦 - 邀请密匙
  321. @property (nonatomic, assign) BOOL camera;//允许嘉宾打开摄像头
  322. @property (nonatomic, strong) NSArray<MORTMLinkMic *> *linkMics;//麦位信息变化, 返回变化的麦位信息
  323. @property (nonatomic, strong) NSDictionary *multipleChange;
  324. @property (nonatomic, strong) MOSettingInfo *changeSettingInfo;
  325. @property (nonatomic, assign) NSInteger vipType;//当前连麦人的vip等级 (单人连麦)
  326. @property (nonatomic, strong) NSArray<MORtmTranslate *> *translateArr;//翻译的结果数组
  327. //礼物
  328. @property (nonatomic, assign) NSInteger code;
  329. @property (nonatomic, copy) NSString *name;
  330. @property (nonatomic, assign) NSInteger count;
  331. @property (nonatomic, strong) NSArray *multipleUserList;
  332. @property (nonatomic, assign) NSInteger rebateMultiple;//返钻倍数
  333. @property (nonatomic, assign) NSInteger rebateDiamond;//返钻数量
  334. @property (nonatomic, assign) NSInteger hitDiamond;//返钻暴击 钻石数
  335. @property (nonatomic, assign) BOOL antiDrillCritGift;//返钻暴击
  336. @property (nonatomic, assign) NSInteger priceDiamond;//钻石价格
  337. //特效类型(0=无动效,1=自定义动效,2=第三方绑定动效)
  338. @property (nonatomic, assign) NSInteger effectType;
  339. //点赞连击数
  340. @property (nonatomic, assign) NSInteger likeCombo;
  341. //发言
  342. //内容
  343. @property (nonatomic, copy) NSString *content;
  344. //目标用户ID 扩展字段 - @用户
  345. @property (nonatomic, copy) NSString *targetUserId;
  346. //系统指令type为0时, 不为空
  347. @property (nonatomic, copy) NSString *roomId;
  348. //礼物返钻
  349. @property (nonatomic, strong) MORtmGiftRebate *giftSuperLucky;
  350. //活动中间对象
  351. @property (nonatomic, strong) MORtmGiftRebate *activitySuperLucky2;
  352. //SL 中奖主播
  353. @property (nonatomic, strong) MORtmGiftRebate *activitySl2Anchor;
  354. //内容 type=12时, 不为空, 钻石大赢家
  355. @property (nonatomic, strong) MORtmGiftRebate *actBigWinner;
  356. //提示内容
  357. @property (nonatomic, copy) NSString *tipContent;
  358. //奢华礼物信息
  359. @property (nonatomic, strong) MORtmGiftRebate *luxury;
  360. /** 被@用户的UserId 使用英文逗号分隔 */
  361. @property (nonatomic, copy) NSString *atList;
  362. /** 被@用户的昵称 使用英文逗号分隔 */
  363. @property (nonatomic, copy) NSString *atNameList;
  364. @property (nonatomic, strong) MORedEnvelopeObject *redEnvelope;
  365. @property (nonatomic, strong) MORedEnvelopeObject *redEnvelopeFinished;
  366. //PK状态信息
  367. @property (nonatomic, assign)double selfScore;//我方分数
  368. @property (nonatomic, assign)double oppScore;//我方分数
  369. @property (nonatomic, assign)NSInteger quitInfo;//中途结束信息 1:对方退出 2:对方投降 3:我方退出 4:我方投降, 0:单纯状态信息更新
  370. //禁言
  371. @property (nonatomic, assign) BOOL silence;
  372. @property (nonatomic, assign) BOOL manager;
  373. //是否是弹幕消息
  374. @property (nonatomic, assign) BOOL danmu;
  375. /** 红包发送者的名字 */
  376. @property (nonatomic, copy) NSString *redSendName;
  377. //红包ID
  378. @property (nonatomic, copy) NSString *redEId;//红包ID
  379. //系统更新消息
  380. /** 时间版本号 */
  381. @property (nonatomic, assign) double t;
  382. /** 主播金豆数 */
  383. @property (nonatomic, assign) double g;
  384. /** 观众数量 */
  385. @property (nonatomic, assign) double v;
  386. /** 管理员数量 */
  387. @property (nonatomic, assign) double m;
  388. /** 直播间左上角卡片底图 */
  389. @property (nonatomic, copy) NSString *c;
  390. /** 管理员数量 */
  391. @property (nonatomic, strong) NSArray<MORtmLiveRoomViewer *> *l;
  392. /** 热度 */
  393. @property (nonatomic, assign) double h;
  394. @property (nonatomic, assign) double suspendExpire;//主播挂起的截止时间
  395. @property (nonatomic, assign) double planConvertTime;//房间转换时间
  396. @property (nonatomic, assign) double diamond;//转换房间后 需要付款的金额
  397. /** 红包雨ID */
  398. @property (nonatomic, copy) NSString *redRainPeriodId;
  399. @property (nonatomic, strong) MORtmUser *roomUser;// 15=VIP 首次进入房间 房间用户,type=15,24时 ,必填
  400. @property (nonatomic, copy) NSString *floatingBg;// 飘屏背景,type=15时 ,必填
  401. @property (nonatomic, strong) MORtmRoomResolution *resolution;//16= 主播刷新房间分辨率(点对点)
  402. @property (nonatomic, strong) MORtmFlexActivityPiggy *activityPiggy;//20, 存钱罐数据
  403. @property (nonatomic, strong) MORtmUserDialog *rtmUserDialog;//22 通用活动弹窗
  404. @property (nonatomic, copy) NSString *nickName;//23 //新人进房提醒
  405. @property (nonatomic, assign) NSInteger tipNormalNum;
  406. @property (nonatomic, strong) MORtmFansClub *fansClub;//粉丝团信息,type=24时,必填
  407. @property (nonatomic, strong) MORtmOpenVipNotice *openVipNotice;//vip开通/续费 通知 type=25必填
  408. @property (nonatomic, strong) MORtmUserLevelUpgrade *levelNotice;//RTM 用户等级升级通知. type=26时,必填
  409. @property (nonatomic, strong) MORtmFastGive *fastGive;// RTM 快捷送礼 推送。type=27
  410. @property (nonatomic, strong) MORtmFollowGive *followGive;// / RTM 快捷送礼 推送。type=28
  411. @property (nonatomic, strong) NSArray<MORoomDesire *> *roomDesires;//RTM 房间心愿变更 推送. type=29
  412. @property (nonatomic, strong) MORtmRoomDesireDone *desireDone;// RTM 房间心愿完成 推送, type=32
  413. @property (nonatomic, strong) MORtmBlindboxDrawResult *blindboxDrawResult;//RTM 盲盒礼物中奖推送, type =33
  414. @property (nonatomic, assign) BOOL hasInteractGift;//RTM 主播礼物菜单 推送 ,type=34
  415. @property (nonatomic, strong) MORtmGiftReturnForMultiple *returnForMultiple;//返钻暴击礼物 推送 type = 35
  416. @property (nonatomic, assign) BOOL allowLinkMic;//是否允许连麦。 RTM 房间连麦权限变更 推送,type=36
  417. @property (nonatomic, strong, nullable) MORtmLivePKLinkInvite *pkLinkInvite;// type=37 ,pk/连线 邀请 RTM消息
  418. @property (nonatomic, strong, nullable) MORtmPkV2Status *pkV2Status;//type=38,pk/连线 状态 信息 RTM
  419. @property (nonatomic, strong, nullable) MORtmPkV2StatusExpand *pkV2StatusExpand; // type=39,pk/连线 状态 信息-扩展信息 RTM
  420. @property (nonatomic, strong, nullable) MORtmToast *rtmToast; //type=40,直播间toast rtm
  421. @end
  422. @interface MORtmEntity : NSObject<NSCopying>
  423. @property (nonatomic, assign) NSInteger type;
  424. @property (nonatomic, strong) MORtmUser *user;
  425. @property (nonatomic, strong) NSString *roomId;
  426. @property (nonatomic, strong) id data;
  427. /** 拼装的文本内容显示需要的高度 */
  428. @property (nonatomic, assign) CGFloat cellHeight;
  429. /** 内容需要的宽度 */
  430. @property (nonatomic, assign) CGFloat contentWidth;
  431. @property (nonatomic, strong) NSString *bizId;//临时生成的唯一ID
  432. @property (nonatomic, copy) NSString *blindBoxPropNotice;//盲盒礼物开出装扮的消息
  433. //根据用户偏好缓存, 创建一个MORtmUser
  434. + (MORtmUser *)prepareBaseUser;
  435. //收到消息时, 将data解析成为真正的对象类
  436. + (MORtmEntity *)prepareRealObjectWith:(MORtmEntity *)entity;
  437. //创建一条文本消息
  438. + (MORtmEntity *)prepareRtmTextMessageWithType:(MORtmContentType )type AndText:(NSString *)text And:(BOOL)danMu AndRoomId:(NSString *)roomId;
  439. //创建一条艾特的文本
  440. + (MORtmEntity *)prepareRtmTextMessageWithType:(MORtmContentType )type AndText:(NSString *)text And:(BOOL)danMu AndRoomId:(NSString *)roomId AndAtDict:(NSDictionary *)dict;
  441. //创建一条上麦申请消息
  442. + (MORtmEntity *)prepareRtmApplyLianMaiMessageWithType:(MORtmContentType )type AndLinkMicType:(NSInteger)linkMicType AndRoomId:(NSString *)roomId;
  443. //创建一条 主播 审核 连麦信息
  444. + (MORtmEntity *)prepareRtmManageLianMaiMessageWithType:(MORtmContentType )type AndLinkMicType:(NSInteger)linkMicType AndStatus:(NSInteger)status AndAgoraId:(NSInteger)agoraId AndRoomId:(NSString *)roomId;
  445. + (MORtmEntity *)prepareRtmManageAgreeLianMaiMessageAndLinkMicType:(NSInteger)linkMicType AndStatus:(NSInteger)status AndAgoraId:(NSInteger)agoraId AndUserId:(NSString *)userId AndUserName:(NSString *)userName AndAvatar:(NSString *)avatar AndRoomId:(NSString *)roomId AndVipType:(NSInteger)vipType;
  446. //创建一条 多人连麦的Rtm
  447. + (MORtmEntity *)prepareRtmManageAgreeLianMaiMessageAndLinkMicType:(NSInteger)linkMicType AndStatus:(NSInteger)status AndRoomId:(NSString *)roomId AndMOLinkMic:(MOLinkMic *)linkMic AndSeatNum:(NSInteger)seatNum;
  448. //创建一条上麦激活信息 - 广播通知所有人
  449. + (MORtmEntity *)prepareRtmActiveLianMaiMessageWithType:(MORtmContentType)type AndLinkMicType:(NSInteger)linkMicType AndRoomId:(NSString *)roomId;
  450. //创建一条Pk 点对点消息
  451. + (MORtmEntity *)prepareRtmPeerPkMessageWithStatus:(NSInteger)status PkSecretStr:(NSString *)pkSecretStr AndRoomId:(NSString *)roomId;
  452. //创建一条Pk 投降或者退出Rtm
  453. + (MORtmEntity *)prepareRtmPeerPkQuitMessageWith:(BOOL)isSurrender AndRoomId:(NSString *)roomId;
  454. //根据消息类型枚举 创建一条对应Rtm消息
  455. + (MORtmEntity *)prepareRtmMessageWithType:(MORtmContentType )type AndRoomId:(NSString *)roomId;
  456. //准备一条 进入房间 Rtm
  457. + (MORtmEntity *)prepareRtmMessageWithEnterWith:(MOLiveDetail *)liveDetail;
  458. //准备一条 礼物 Rtm
  459. + (MORtmEntity *)prepareRtmGiftMessageWithCode:(NSInteger)code NameStr:(NSString *)nameStr Count:(NSInteger)count AndRoomId:(NSString *)roomId;
  460. + (MORtmEntity *)prepareRtmGiftMessageWith:(MOGiftInfo *)giftInfo AndRoomId:(NSString *)roomId;
  461. //准备一条 礼物数量 Rtm
  462. + (MORtmEntity *)prepareRtmGiftEndNumMessageWith:(MOGiftInfo *)giftInfo AndRoomId:(NSString *)roomId;
  463. /// 准备一条PK 房间状态信息
  464. /// - Parameters:
  465. /// - pkModel: PK状态对象
  466. /// - status: PK状态 0:就绪 1:PK中 2:惩罚 3:结束
  467. /// - quitStatus: 中途结束信息 1:对方退出 2:对方投降 3:我方退出 4:我方投降, 0:单纯状态信息更新
  468. + (MORtmEntity *)prepareRtmAboutPkStatusWith:(MOLiveList *)pkModel AndStatus:(NSInteger)status AndQuitStatus:(NSInteger)quitStatus AndRoomId:(NSString *)roomId;
  469. + (MORtmEntity *)preparePkRtmWith:(MOLinePKViewModel *)pkViewModel AndStatus:(NSInteger)status AndQuitStatus:(NSInteger)quitStatus AndRoomId:(NSString *)roomId;
  470. /// 准备一条房间踢人信息
  471. /// - Parameter userId: 被踢的用户Id
  472. + (MORtmEntity *)prepareRtmAboutKickSomeOneWith:(NSString *)userId AndRoomId:(NSString *)roomId;
  473. /// 准备一条禁言消息
  474. /// - Parameters:
  475. /// - userId: 被禁言
  476. /// - isSilence: 是否被禁言
  477. + (MORtmEntity *)prepareRtmAboutSilenceSomeOneWith:(NSString *)userId AndRoomId:(NSString *)roomId And:(BOOL)isSilence;
  478. /// 准备一条管理员信息
  479. /// - Parameters:
  480. /// - userId: 用户ID
  481. /// - roomId: 房间ID
  482. + (MORtmEntity *)prepareRtmAboutManageSomeOneWith:(NSString *)userId AndRoomId:(NSString *)roomId And:(BOOL)isManager;
  483. /// 准备一条提示信息
  484. /// - Parameters:
  485. /// - roomId: 房间ID
  486. /// - type: // 1: 关注 2: PK 3:禁言
  487. /// - status: // 1: 关注 (1关注 0取关) 2: PK(0:失败 1: 胜利 2: 自己投降3:对方投降) 3:(0解除禁言 1禁言) 4:(0: 主播离开 1: 主播回来)
  488. /// - content: //提示内容, 有些类型需要 (非必传)
  489. + (MORtmEntity *)prePareRtmAboutRoomTipWithRoomId:(NSString *)roomId AndType:(NSInteger)type AndStatus:(NSInteger)status AndTipContent:(NSString *)content AndUserName:(NSString *)userName;
  490. // 准备一条 房间挂起的Rtm
  491. + (MORtmEntity *)prePareRtmAboutRoomTipWithRoomId:(NSString *)roomId AndType:(NSInteger)type AndStatus:(NSInteger)status AndTipContent:(NSString *)content AndUserName:(NSString *)userName AndSuspend:(double)suspend;
  492. /// 准备一条提示信息 (点赞连击)
  493. /// - Parameters:
  494. /// - roomId: 房间ID
  495. /// - type: // 1: 关注 2: PK 3:禁言4:首次点赞提示 5点赞连击(两秒钟)
  496. /// - likeNum: 点赞连击数
  497. + (MORtmEntity *)prePareRtmAboutLikeComboWithRoomId:(NSString *)roomId AndType:(NSInteger)type AndLikeNum:(NSInteger)likeNum;
  498. /// 准备一条心愿单更新RTM
  499. /// - Parameters:
  500. /// - roomId: 房间ID
  501. /// - wishList: 接口数组
  502. + (MORtmEntity *)prePareRtmAboutWishListWithRoomId:(NSString *)roomId AndWishList:(NSArray *)wishList;
  503. /// 准备一条语言翻译的Rtm
  504. /// - Parameters:
  505. /// - roomId: 房间ID
  506. /// - wishList: 接口数组
  507. + (MORtmEntity *)prePareRtmAboutTranslateArrWithRoomId:(NSString *)roomId AndTranslateArr:(NSArray *)translateArr;
  508. /// 创建一条红包领取记录
  509. /// - Parameters:
  510. /// - sendUserName: 发送红包者的nickName
  511. /// - redEId: 红包ID
  512. + (MORtmEntity *)prepareRtmAboutGetRedTipWithSendUserName:(NSString *)sendUserName RedId:(NSString *)redEId;
  513. /// 准备一条房间转换Rtm
  514. + (MORtmEntity *)prepareRtmAboutChangeRoomTypeWithRoomId:(NSString *)roomId AndType:(NSInteger)type AndPlanConvertTime:(double)planConvertTime AndDiamond:(double)diamond;
  515. /// 打招呼需求本地构造一条被房主艾特的消息
  516. + (MORtmEntity *)prepareLocalChatMessage:(MOUserBase *)userModel content:(NSString *)content;
  517. /// 准备一条通用提示消息RoomTipTwo
  518. + (MORtmEntity *)prepareRoomTipTwoMessage:(NSInteger)type AndUserName:(NSString *)userName AndRoomId:(NSString *)roomId AndTipNormalNum:(NSInteger)tipNormalNum;
  519. #pragma mark - ChangeObject
  520. + (MOUserProfile *)toCreateUserProfileWith:(MORtmUser *)user;
  521. + (MODressing *)toCreateUserProfileDressingWith:(MORtmUser *)user;
  522. + (MOLinkMic *)toCreateLinkMicObjectWith:(MORTMLinkMic *)inObject;
  523. + (MOLinkMic *)toCreateLinkMicObjectWithEntity:(MORtmEntity *)entity;
  524. @end
  525. NS_ASSUME_NONNULL_END