V2TIMManager+Community.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482
  1. /////////////////////////////////////////////////////////////////////
  2. //
  3. // 腾讯云通信服务 IMSDK
  4. //
  5. // 模块名称:V2TIMManager+Community
  6. //
  7. // 社群接口,里面包含了创建话题、删除话题、修改话题、获取话题列表等逻辑
  8. //
  9. /////////////////////////////////////////////////////////////////////
  10. #import "V2TIMManager.h"
  11. #import "V2TIMManager+Group.h"
  12. V2TIM_EXPORT @protocol V2TIMCommunityListener;
  13. @class V2TIMTopicInfo;
  14. @class V2TIMTopicInfoResult;
  15. @class V2TIMTopicOperationResult;
  16. @class V2TIMPermissionGroupInfo;
  17. @class V2TIMPermissionGroupOperationResult;
  18. @class V2TIMPermissionGroupInfoResult;
  19. @class V2TIMPermissionGroupMemberOperationResult;
  20. @class V2TIMPermissionGroupMemberInfoResult;
  21. @class V2TIMTopicPermissionOperationResult;
  22. @class V2TIMTopicPermissionResult;
  23. V2TIM_EXPORT @interface V2TIMManager (Community)
  24. /// 操作话题列表结果
  25. typedef void(^V2TIMTopicOperationResultSucc)(NSMutableArray<V2TIMTopicOperationResult *> *resultList);
  26. /// 获取话题列表结果
  27. typedef void(^V2TIMTopicInfoResultListSucc)(NSMutableArray<V2TIMTopicInfoResult *> *resultList);
  28. /// 创建话题成功回调
  29. typedef void (^V2TIMCreateTopicSucc)(NSString * topicID);
  30. /// 创建权限组成功回调
  31. typedef void (^V2TIMCreatePermissionGroupSucc)(NSString * permissionGroupID);
  32. /// 操作权限组结果
  33. typedef void (^V2TIMPermissionGroupOperationResultSucc)(NSMutableArray<V2TIMPermissionGroupOperationResult *> *resultList);
  34. /// 获取权限组列表结果
  35. typedef void (^V2TIMPermissionGroupInfoResultListSucc)(NSMutableArray<V2TIMPermissionGroupInfoResult *> *resultList);
  36. /// 操作权限组成员结果
  37. typedef void (^V2TIMPermissionGroupMemberOperationResultListSucc)(NSMutableArray<V2TIMPermissionGroupMemberOperationResult *> *resultList);
  38. /// 获取权限组成员结果
  39. typedef void (^V2TIMPermissionGroupMemberInfoResultListSucc)(NSString *nextCursor, NSMutableArray<V2TIMGroupMemberFullInfo *> *resultList);
  40. /// 获取话题权限结果
  41. typedef void (^V2TIMTopicPermissionResultSucc)(NSMutableArray<V2TIMTopicPermissionResult *> *resultList);
  42. /// 社群权限值
  43. typedef NS_ENUM(NSInteger, V2TIMCommunityPermissionValue) {
  44. V2TIM_COMMUNITY_PERMISSION_MANAGE_GROUP_INFO = 0x1, ///< 修改群资料权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
  45. V2TIM_COMMUNITY_PERMISSION_MANAGE_GROUP_MEMBER = 0x1 << 1, ///< 群成员管理权限,包含踢人,进群审核、修改成员资料等。该位设置为0,表示没有该权限;设置为1,表示有该权限。
  46. V2TIM_COMMUNITY_PERMISSION_MANAGE_PERMISSION_GROUP_INFO = 0x1 << 2, ///< 管理权限组资料权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。权限包含创建、修改、删除权限组;在权限组中添加、修改、删除话题权限。
  47. V2TIM_COMMUNITY_PERMISSION_MANAGE_PERMISSION_GROUP_MEMBER = 0x1 << 3, ///< 权限组成员管理权限,包含邀请成员进权限组和把成员从权限组踢出等。该位设置为0,表示没有该权限;设置为1,表示有该权限。
  48. V2TIM_COMMUNITY_PERMISSION_MANAGE_TOPIC_IN_COMMUNITY = 0x1 << 4, ///< 话题管理权限,包含创建、修改、删除话题等。该位设置为0,表示没有该权限;设置为1,表示有该权限。
  49. V2TIM_COMMUNITY_PERMISSION_MUTE_MEMBER = 0x1 << 5, ///< 对某群成员在社群下所有话题的禁言权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
  50. V2TIM_COMMUNITY_PERMISSION_SEND_MESSAGE = 0x1 << 6, ///< 群成员在社群下所有话题的发消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
  51. V2TIM_COMMUNITY_PERMISSION_AT_ALL = 0x1 << 7, ///< 在社群下所有话题发 at all 消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
  52. V2TIM_COMMUNITY_PERMISSION_GET_HISTORY_MESSAGE = 0x1 << 8, ///< 在社群下所有话题拉取入群前的历史消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
  53. V2TIM_COMMUNITY_PERMISSION_REVOKE_OTHER_MEMBER_MESSAGE = 0x1 << 9, ///< 在社群下所有话题撤回他人消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
  54. V2TIM_COMMUNITY_PERMISSION_BAN_MEMBER = 0x1 << 10, ///< 封禁社群成员权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
  55. };
  56. /// 话题权限值
  57. typedef NS_ENUM(NSInteger, V2TIMTopicPermissionValue) {
  58. V2TIM_TOPIC_PERMISSION_MANAGE_TOPIC = 0x1, ///< 管理当前话题的权限,包括修改当前话题的资料、删除当前话题。该位设置为0,表示没有该权限;设置为1,表示有该权限
  59. V2TIM_TOPIC_PERMISSION_MANAGE_TOPIC_PERMISSION = 0x1 << 1, ///< 在当前话题中管理话题权限,包括添加、修改、移除话题权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
  60. V2TIM_TOPIC_PERMISSION_MUTE_MEMBER = 0x1 << 2, ///< 在当前话题中禁言成员权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
  61. V2TIM_TOPIC_PERMISSION_SEND_MESSAGE = 0x1 << 3, ///< 在当前话题中发消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
  62. V2TIM_TOPIC_PERMISSION_GET_HISTORY_MESSAGE = 0x1 << 4, ///< 在当前话题中拉取入群前的历史消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
  63. V2TIM_TOPIC_PERMISSION_REVOKE_OTHER_MEMBER_MESSAGE = 0x1 << 5, ///< 在当前话题中撤回他人消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
  64. V2TIM_TOPIC_PERMISSION_AT_ALL = 0x1 << 6, ///< 在当前话题中发消息时有 at all 权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
  65. };
  66. /////////////////////////////////////////////////////////////////////////////////
  67. //
  68. // 社群监听器
  69. //
  70. /////////////////////////////////////////////////////////////////////////////////
  71. /**
  72. * 1.1 添加社群监听器
  73. */
  74. - (void)addCommunityListener:(id<V2TIMCommunityListener>)listener NS_SWIFT_NAME(addCommunityListener(listener:));
  75. /**
  76. * 1.2 移除社群监听器
  77. */
  78. - (void)removeCommunityListener:(id<V2TIMCommunityListener>)listener NS_SWIFT_NAME(removeCommunityListener(listener:));
  79. /////////////////////////////////////////////////////////////////////////////////
  80. //
  81. // 社群接口
  82. //
  83. /////////////////////////////////////////////////////////////////////////////////
  84. /**
  85. * 2.1 创建支持话题的社群
  86. */
  87. - (void)createCommunity:(V2TIMGroupInfo*)info memberList:(NSArray<V2TIMCreateGroupMemberInfo *>*) memberList succ:(V2TIMCreateGroupSucc)succ fail:(V2TIMFail)fail;
  88. /**
  89. * 2.1 获取当前用户已经加入的支持话题的社群列表
  90. */
  91. - (void)getJoinedCommunityList:(V2TIMGroupInfoListSucc)succ fail:(V2TIMFail)fail;
  92. /**
  93. * 2.2 创建话题
  94. *
  95. * @param groupID 社群 ID,必须以 @TGS#_ 开头。
  96. */
  97. - (void)createTopicInCommunity:(NSString *)groupID topicInfo:(V2TIMTopicInfo *)topicInfo succ:(V2TIMCreateTopicSucc)succ fail:(V2TIMFail)fail;
  98. /**
  99. * 2.3 删除话题
  100. */
  101. - (void)deleteTopicFromCommunity:(NSString *)groupID topicIDList:(NSArray<NSString *>*)topicIDList succ:(V2TIMTopicOperationResultSucc)succ fail:(V2TIMFail)fail;
  102. /**
  103. * 2.4 修改话题信息
  104. */
  105. - (void)setTopicInfo:(V2TIMTopicInfo *)topicInfo succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
  106. /**
  107. * 2.5 获取话题列表。
  108. * @note: topicIDList 传空时,获取此社群下的所有话题列表
  109. */
  110. - (void)getTopicInfoList:(NSString *)groupID topicIDList:(NSArray<NSString *>*)topicIDList succ:(V2TIMTopicInfoResultListSucc)succ fail:(V2TIMFail)fail;
  111. /////////////////////////////////////////////////////////////////////////////////
  112. //
  113. // 权限组接口
  114. //
  115. /////////////////////////////////////////////////////////////////////////////////
  116. /**
  117. * 3.1 创建社群权限组(7.8 及其以上版本支持)
  118. * @note
  119. * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
  120. */
  121. - (void)createPermissionGroupInCommunity:(V2TIMPermissionGroupInfo *)permissionGroupInfo succ:(V2TIMCreatePermissionGroupSucc)succ fail:(V2TIMFail)fail;
  122. /**
  123. * 3.2 删除社群权限组(7.8 及其以上版本支持)
  124. * @note
  125. * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
  126. */
  127. - (void)deletePermissionGroupFromCommunity:(NSString *)groupID permissionGroupIDList:(NSArray<NSString *>*)permissionGroupIDList succ:(V2TIMPermissionGroupOperationResultSucc)succ fail:(V2TIMFail)fail;
  128. /**
  129. * 3.3 修改社群权限组(7.8 及其以上版本支持)
  130. * @note
  131. * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
  132. */
  133. - (void)modifyPermissionGroupInfoInCommunity:(V2TIMPermissionGroupInfo *)permissionGroupInfo succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
  134. /**
  135. * 3.4 获取已加入的社群权限组列表(7.8 及其以上版本支持)
  136. * @note
  137. * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
  138. */
  139. - (void)getJoinedPermissionGroupListInCommunity:(NSString *)groupID succ:(V2TIMPermissionGroupInfoResultListSucc)succ fail:(V2TIMFail)fail;
  140. /**
  141. * 3.5 获取社群权限组列表(7.8 及其以上版本支持)
  142. * @note
  143. * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
  144. * - permissionGroupIDList 为空时,获取所有的权限组列表;不为空时,获取指定的权限组列表
  145. */
  146. - (void)getPermissionGroupListInCommunity:(NSString *)groupID permissionGroupIDList:(NSArray<NSString *>*)permissionGroupIDList succ:(V2TIMPermissionGroupInfoResultListSucc)succ fail:(V2TIMFail)fail;
  147. /**
  148. * 3.6 向社群权限组添加成员(7.7 及其以上版本支持)
  149. * @note
  150. * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
  151. */
  152. - (void)addCommunityMembersToPermissionGroup:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID memberList:(NSArray<NSString *>*)memberList succ:(V2TIMPermissionGroupMemberOperationResultListSucc)succ fail:(V2TIMFail)fail;
  153. /**
  154. * 3.7 从社群权限组删除成员(7.8 及其以上版本支持)
  155. */
  156. - (void)removeCommunityMembersFromPermissionGroup:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID memberList:(NSArray<NSString *>*)memberList succ:(V2TIMPermissionGroupMemberOperationResultListSucc)succ fail:(V2TIMFail)fail;
  157. /**
  158. * 3.8 获取社群权限组成员列表(7.8 及其以上版本支持)
  159. * @note
  160. * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
  161. */
  162. - (void)getCommunityMemberListInPermissionGroup:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID nextCursor:(NSString *)nextCursor succ:(V2TIMPermissionGroupMemberInfoResultListSucc)succ fail:(V2TIMFail)fail;
  163. /**
  164. * 3.9 向权限组添加话题权限(7.8 及其以上版本支持)
  165. * @note
  166. * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
  167. */
  168. - (void)addTopicPermissionToPermissionGroup:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID topicPermissionMap:(NSDictionary<NSString *, NSNumber *>*)topicPermissionMap succ:(V2TIMTopicOperationResultSucc)succ fail:(V2TIMFail)fail;
  169. /**
  170. * 3.10 从权限组中删除话题权限(7.8 及其以上版本支持)
  171. * @note
  172. * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
  173. */
  174. - (void)deleteTopicPermissionFromPermissionGroup:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID topicIDList:(NSArray<NSString *>*)topicIDList succ:(V2TIMTopicOperationResultSucc)succ fail:(V2TIMFail)fail;
  175. /**
  176. * 3.11 修改权限组中的话题权限(7.8 及其以上版本支持)
  177. * @note
  178. * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
  179. */
  180. - (void)modifyTopicPermissionInPermissionGroup:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID topicPermissionMap:(NSDictionary<NSString *, NSNumber *>*)topicPermissionMap succ:(V2TIMTopicOperationResultSucc)succ fail:(V2TIMFail)fail;
  181. /**
  182. * 3.12 获取权限组中的话题权限(7.8 及其以上版本支持)
  183. * @note
  184. * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
  185. */
  186. - (void)getTopicPermissionInPermissionGroup:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID topicIDList:(NSArray<NSString *>*)topicIDList succ:(V2TIMTopicPermissionResultSucc)succ fail:(V2TIMFail)fail;
  187. @end
  188. /////////////////////////////////////////////////////////////////////////////////
  189. //
  190. // 社群回调
  191. //
  192. /////////////////////////////////////////////////////////////////////////////////
  193. /// 资料关系链回调
  194. V2TIM_EXPORT @protocol V2TIMCommunityListener <NSObject>
  195. @optional
  196. /// 话题创建回调
  197. - (void)onCreateTopic:(NSString *)groupID topicID:(NSString *)topicID;
  198. /// 话题被删除回调
  199. - (void)onDeleteTopic:(NSString *)groupID topicIDList:(NSArray<NSString *> *)topicIDList;
  200. /// 话题更新回调
  201. - (void)onChangeTopicInfo:(NSString *)groupID topicInfo:(V2TIMTopicInfo *)topicInfo;
  202. /// 收到 RESTAPI 下发的话题自定义系统消息
  203. - (void)onReceiveTopicRESTCustomData:(NSString *)topicID data:(NSData *)data;
  204. /// 权限组创建通知
  205. - (void)onCreatePermissionGroup:(NSString *)groupID permissionGroupInfo:(V2TIMPermissionGroupInfo *)permissionGroupInfo;
  206. /// 权限组删除通知
  207. - (void)onDeletePermissionGroup:(NSString *)groupID permissionGroupIDList:(NSArray<NSString *> *)permissionGroupIDList;
  208. /// 权限组更新通知
  209. - (void)onChangePermissionGroupInfo:(NSString *)groupID permissionGroupInfo:(V2TIMPermissionGroupInfo *)permissionGroupInfo;
  210. /// 添加成员到权限组通知
  211. - (void)onAddMembersToPermissionGroup:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID memberIDList:(NSArray<NSString *> *)memberIDList;
  212. /// 从权限组中删除成员通知
  213. - (void)onRemoveMembersFromPermissionGroup:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID memberIDList:(NSArray<NSString *> *)memberIDList;
  214. /// 话题权限添加通知
  215. - (void)onAddTopicPermission:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID topicPermissionMap:(NSDictionary<NSString *, NSNumber *>*)topicPermissionMap;
  216. /// 话题权限删除通知
  217. - (void)onDeleteTopicPermission:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID topicIDList:(NSArray<NSString *>*)topicIDList;
  218. /// 话题权限修改通知
  219. - (void)onModifyTopicPermission:(NSString *)groupID permissionGroupID:(NSString *)permissionGroupID topicPermissionMap:(NSDictionary<NSString *, NSNumber *>*)topicPermissionMap;
  220. @end
  221. /////////////////////////////////////////////////////////////////////////////////
  222. //
  223. // 话题基本资料
  224. //
  225. /////////////////////////////////////////////////////////////////////////////////
  226. V2TIM_EXPORT @interface V2TIMTopicInfo : NSObject
  227. /// 话题 ID,只能在创建话题或者修改话题信息的时候设置。组成方式为:社群 ID + @TOPIC#_xxx,例如社群 ID 为 @TGS#_123,则话题 ID 为 @TGS#_123@TOPIC#_xxx
  228. @property(nonatomic, strong) NSString *topicID;
  229. /// 话题类型(默认为 Public 话题,只能在创建话题的时候设置)(从 8.4 版本开始支持)
  230. /// "Public" :公开话题,社群内成员可以自由进出发言。
  231. /// "Private" :私密话题,有自己的成员列表(成员上限 10000 人),社群成员需要加入话题才能发言(私密话题需要购买企业版套餐包)。
  232. @property(nonatomic, strong) NSString *topicType;
  233. /// 话题名称,最长 150 字节,使用 UTF-8 编码
  234. @property(nonatomic, strong) NSString *topicName;
  235. /// 话题头像,最长 500 字节,使用 UTF-8 编码
  236. @property(nonatomic, strong) NSString *topicFaceURL;
  237. /// 话题介绍,最长 400 字节,使用 UTF-8 编码
  238. @property(nonatomic, strong) NSString *introduction;
  239. /// 话题公告,最长 400 字节,使用 UTF-8 编码
  240. @property(nonatomic, strong) NSString *notification;
  241. /// 话题全员禁言
  242. @property(nonatomic, assign) BOOL isAllMuted;
  243. /// 当前用户在话题中的禁言时间,单位:秒
  244. @property(nonatomic, assign, readonly) uint32_t selfMuteTime;
  245. /// 话题自定义字段
  246. @property(nonatomic, strong) NSString *customString;
  247. /// 话题消息接收选项,修改话题消息接收选项请调用 setGroupReceiveMessageOpt 接口
  248. @property(nonatomic, assign, readonly) V2TIMReceiveMessageOpt recvOpt;
  249. /// 话题草稿
  250. @property(nonatomic, strong) NSString *draftText;
  251. /// 话题消息未读数量
  252. @property(nonatomic, assign, readonly) uint64_t unreadCount;
  253. /// 话题 lastMessage
  254. @property(nonatomic,strong,readonly) V2TIMMessage *lastMessage;
  255. /// 话题已读消息的 sequence,从 7.8 版本开始支持
  256. @property(nonatomic, assign, readonly) uint64_t readSequence;
  257. /// 话题 at 信息列表
  258. @property(nonatomic, strong, readonly) NSArray<V2TIMGroupAtInfo *> *groupAtInfolist;
  259. /// 话题创建时间,单位:秒
  260. @property(nonatomic, assign, readonly) uint32_t createTime;
  261. /// 申请加入话题是否需要管理员审批(私密话题有效,默认不需要审批,可以自由加入)(从 8.4 版本开始支持)
  262. @property(nonatomic, assign) V2TIMGroupAddOpt topicAddOpt;
  263. /// 邀请加入话题是否需要管理员审批(私密话题有效,默认不需要审批,可以自由加入)(从 8.4 版本开始支持)
  264. @property(nonatomic, assign) V2TIMGroupAddOpt topicApproveOpt;
  265. /// 话题默认群成员(私密话题有效,最大支持 100 个群成员,只能在创建话题的时候设置)(从 8.4 版本开始支持)
  266. @property(nonatomic, strong) NSArray<V2TIMCreateGroupMemberInfo *> *memberList;
  267. /// 话题成员的最大个数(私密话题有效,最大支持 10000,默认 10000,只能在创建话题的时候设置)(从 8.4 版本开始支持)
  268. @property(nonatomic, assign) uint32_t memberMaxCount;
  269. /// 话题默认权限,7.8 版本开始支持
  270. /// 群成员在没有加入任何权限组时的默认权限,仅在社群资料 V2TIMGroupInfo 中 enablePermissionGroup = true 打开权限组之后生效
  271. @property(nonatomic, assign) uint64_t defaultPermissions;
  272. /// 登录用户在话题中的消息接收选项是否继承社群。该功能仅增强版 SDK 8.1 及以上版本支持。
  273. - (BOOL)isInheritMessageReceiveOptionFromCommunity;
  274. /**
  275. * 设置登录用户在话题中的消息接收选项是否继承社群。该功能仅增强版 SDK 8.1 及以上版本支持。
  276. */
  277. - (void)setInheritMessageReceiveOptionFromCommunity:(BOOL)isInherit succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
  278. @end
  279. /////////////////////////////////////////////////////////////////////////////////
  280. //
  281. // 话题处理结果
  282. //
  283. /////////////////////////////////////////////////////////////////////////////////
  284. V2TIM_EXPORT @interface V2TIMTopicOperationResult : NSObject
  285. /// 结果 0:成功;非0:失败
  286. @property(nonatomic, assign) int errorCode;
  287. /// 错误信息
  288. @property(nonatomic, strong) NSString *errorMsg;
  289. /// 话题 ID
  290. @property(nonatomic, strong) NSString *topicID;
  291. @end
  292. /////////////////////////////////////////////////////////////////////////////////
  293. //
  294. // 话题资料获取结果
  295. //
  296. /////////////////////////////////////////////////////////////////////////////////
  297. V2TIM_EXPORT @interface V2TIMTopicInfoResult : NSObject
  298. /// 结果 0:成功;非0:失败
  299. @property(nonatomic, assign) int errorCode;
  300. /// 错误信息
  301. @property(nonatomic, strong) NSString *errorMsg;
  302. /// 话题资料
  303. @property(nonatomic, strong) V2TIMTopicInfo *topicInfo;
  304. @end
  305. /////////////////////////////////////////////////////////////////////////////////
  306. //
  307. // 权限组信息
  308. //
  309. /////////////////////////////////////////////////////////////////////////////////
  310. V2TIM_EXPORT @interface V2TIMPermissionGroupInfo : NSObject
  311. /// 群 ID
  312. @property(nonatomic, strong) NSString *groupID;
  313. /// 权限组 ID
  314. @property(nonatomic, strong) NSString *permissionGroupID;
  315. /// 权限组名称
  316. @property(nonatomic, strong) NSString *permissionGroupName;
  317. /// 群权限
  318. @property(nonatomic, assign) uint64_t groupPermission;
  319. /// 自定义数据
  320. @property(nonatomic, strong) NSString *customData;
  321. /// 成员人数
  322. @property(nonatomic, assign, readonly) uint64_t memberCount;
  323. @end
  324. /////////////////////////////////////////////////////////////////////////////////
  325. //
  326. // 权限组信息获取结果
  327. //
  328. /////////////////////////////////////////////////////////////////////////////////
  329. V2TIM_EXPORT @interface V2TIMPermissionGroupInfoResult : NSObject
  330. /// 结果 0:成功;非0:失败
  331. @property(nonatomic,assign) int resultCode;
  332. /// 如果获取失败,会返回错误信息
  333. @property(nonatomic,strong) NSString *resultMsg;
  334. /// 如果获取成功,会返回对应的 info
  335. @property(nonatomic,strong) V2TIMPermissionGroupInfo *info;
  336. @end
  337. /////////////////////////////////////////////////////////////////////////////////
  338. //
  339. // 权限组处理结果
  340. //
  341. /////////////////////////////////////////////////////////////////////////////////
  342. V2TIM_EXPORT @interface V2TIMPermissionGroupOperationResult : NSObject
  343. /// 结果 0:成功;非0:失败
  344. @property(nonatomic,assign) int resultCode;
  345. /// 如果获取失败,会返回错误信息
  346. @property(nonatomic,strong) NSString *resultMsg;
  347. /// 如果获取成功,会返回对应的 info
  348. @property(nonatomic,strong) NSString *permissionGroupID;
  349. @end
  350. /////////////////////////////////////////////////////////////////////////////////
  351. //
  352. // 权限组成员处理结果
  353. //
  354. /////////////////////////////////////////////////////////////////////////////////
  355. V2TIM_EXPORT @interface V2TIMPermissionGroupMemberOperationResult : NSObject
  356. /// 成员 userID
  357. @property(nonatomic,strong) NSString *memberID;
  358. /// 结果 0:成功;非0:失败
  359. @property(nonatomic,assign) int resultCode;
  360. @end
  361. /////////////////////////////////////////////////////////////////////////////////
  362. //
  363. // 话题权限获取结果
  364. //
  365. /////////////////////////////////////////////////////////////////////////////////
  366. V2TIM_EXPORT @interface V2TIMTopicPermissionResult : NSObject
  367. /// 话题
  368. @property(nonatomic,strong) NSString *topicID;
  369. /// 结果 0:成功;非0:失败
  370. @property(nonatomic,assign) int resultCode;
  371. /// 如果获取失败,会返回错误信息
  372. @property(nonatomic,strong) NSString *resultMsg;
  373. /// 话题权限
  374. @property(nonatomic, assign) uint64_t topicPermission;
  375. /// 社群 ID
  376. @property(nonatomic, strong) NSString *groupID;
  377. /// 权限组 ID
  378. @property(nonatomic, strong) NSString *permissionGroupID;
  379. @end