// // MobileRTCMeetingService+Webinar.h // MobileRTC // // Created by chaobai admin on 07/08/2018. // Copyright © 2019 Zoom Video Communications, Inc. All rights reserved. // #import <MobileRTC/MobileRTC.h> #import "MobileRTCQAItem.h" @interface MobileRTCMeetingService (Webinar) /*! @brief Query if the user has the privilege to prompt or demote users in the webinar. @return YES means that user owns the privilege, otherwise not. */ - (BOOL)hasPromptAndDePromptPrivilige; /*! @brief Prompt Attendee to Panelist in Webinar. @return YES means that the method is called successfully, otherwise not. @warning Only meeting host/co-host can run the function. */ - (BOOL)promptAttendee2Panelist:(NSUInteger)userID; /*! @brief Demote the panelist to attendee. @return YES means that the method is called successfully, otherwise not. @warning Only meeting host/co-host can run the function. */ - (BOOL)dePromptPanelist2Attendee:(NSUInteger)userID; /*! @brief Set the chat privilege of the panelist. @param privilege The chat privilege of the panelist @return YES means sucessfull, otherwise not. @warning Only meeting host/co-host can run the function. @warning Only webinar meeting can run the function. */ - (BOOL)changePanelistChatPrivilege:(MobileRTCPanelistChatPrivilegeType)privilege; /*! @brief Get the chat privilege of the panelist. @return The chat privilege of the panelist. */ - (MobileRTCPanelistChatPrivilegeType)getPanelistChatPrivilege; /*! @brief Allow attendee to chat. @return YES means that the method is called successfully, otherwise not. @warning Only meeting host/co-host can run the function. @warning only webinar meeting can run the function. */ - (BOOL)allowAttendeeChat:(MobileRTCChatAllowAttendeeChat)privilegeType; /*! @brief get webinar attendee chat privilege type. @return The chat privilege type for the webinar attendee. */ - (MobileRTCChatAllowAttendeeChat)getWebinarAttendeeChatPrivilege; /*! @brief Query if attendee is allowed to talk in Webinar Meeting. @param userId The ID of user to be allowed. @return YES means allowed, otherwise not. @warning Only meeting host/co-host can run the function. */ - (BOOL)isAllowAttendeeTalk:(NSUInteger)userID; /*! @brief Allow attendee to talk in webinar. @param userId The ID of user to be allowed @param enable Enable/Disable to talk @return YES means that the method is called successfully, otherwise not. @warning Only meeting host/co-host can run the function. */ - (BOOL)allowAttenddeTalk:(NSUInteger)userID allow:(BOOL)enable; /*! @brief Query if Panelist can start video in Webinar Meeting. @return YES means able, otherwise not. */ - (BOOL)isAllowPanelistStartVideo; /*! @brief Allow Panelist to start video in Webinar. @param enable Enable/Disable Panelist to start video. @return YES means that the method is called successfully, otherwise not. @warning Only meeting host/co-host can run the function. */ - (BOOL)allowPanelistStartVideo:(BOOL)enable; #pragma mark Q&A relate Action in Webinar Meeting /*! @brief Query if it is allowed to ask question anonymously in webinar. @return YES means allowed, otherwise not. */ - (BOOL)isAllowAskQuestionAnonymously; /*! @brief Set if it is enabled to ask questions anonymously. @param Enable Enable/Disable to ask questions anonymously. @return YES means that the method is called successfully, otherwise not. @warning Only meeting host/co-host can run this function. */ - (BOOL)allowAskQuestionAnonymously:(BOOL)enable; /*! @brief Query if attendee is allowed to view all question. @return YES means allowed, otherwise not. */ - (BOOL)isAllowAttendeeViewAllQuestion; /*! @brief Allow attendee to view all question. @param Enable Enable/Disable attendee to view all questions. @return YES means that the method is called successfully, otherwise not. @warning Only meeting host/co-host can run this function. */ - (BOOL)allowAttendeeViewAllQuestion:(BOOL)enable; /*! @brief Query if attendee is allowed to submit questions. @return YES means allowed, otherwise not. */ - (BOOL)isAllowAttendeeUpVoteQuestion; /*! @brief Allow attendee to submit questions. @param Enable Allow/Disallow attendee to submit question. @return YES means that the method is called successfully, otherwise not. @warning Only meeting host/co-host can run the function. */ - (BOOL)allowAttendeeUpVoteQuestion:(BOOL)enable; /*! @brief Query if attendee is allowed to comment questions. @return YES means allowed, otherwise not. */ - (BOOL)isAllowCommentQuestion; /*! @brief Allow attendee to comment question. @param Enable Allow/Disallow attendee to comment question. @return YES means that the method is called successfully, otherwise not. @warning Only meeting host/co-host can run the function. */ - (BOOL)allowCommentQuestion:(BOOL)enable; /*! @brief Get all questions. @return All questions list. */ - (nullable NSArray <MobileRTCQAItem *> *)getAllQuestionList; /*! @brief Get My questions. @return My questions list. @warning Only attendee can run the function. */ - (nullable NSArray <MobileRTCQAItem *> *)getMyQuestionList; /*! @brief Get Open questions. @return Open questions list. @warning Only meeting host/co-host/panelist can run the function. */ - (nullable NSArray <MobileRTCQAItem *> *)getOpenQuestionList; /*! @brief Get Dismissed questions. @return Dismissed questions list. @warning Only meeting host/co-host/panelist can run the function. */ - (nullable NSArray <MobileRTCQAItem *> *)getDismissedQuestionList; /*! @brief Get Answered questions. @return Answered questions list. @warning Only meeting host/co-host/panelist can run the function. */ - (nullable NSArray <MobileRTCQAItem *> *)getAnsweredQuestionList; /*! @brief Get the amount of all questions. @return Amount of all questions. */ - (int)getALLQuestionCount; /*! @brief Get the amount of my questions. @return Amount of open-ended questions. */ - (int)getMyQuestionCount; /*! @brief Get the amount of Open questions. @return Amount of open-ended questions. */ - (int)getOpenQuestionCount; /*! @brief Get the amount of dissmissed questions. @return Amount of open-ended questions. */ - (int)getDismissedQuestionCount; /*! @brief Get the amount of answered questions. @return Amount of open-ended questions. */ - (int)getAnsweredQuestionCount; /*! @brief get question item by questionID. @param questionID question id. @return the question item. */ - (nullable MobileRTCQAItem *)getQuestion:(nonnull NSString *)questionID; /*! @brief get answer item by questionID. @param answerID answer id. @return the answer item. */ - (nullable MobileRTCQAAnswerItem *)getAnswer:(nonnull NSString *)answerID; /*! @brief Add Quesion. @param content question content. @param anonymous if true anonymously. @return successs or not. @warning Only attendee can run the function. */ - (BOOL)addQuestion:(nonnull NSString *)content anonymous:(BOOL)anonymous; /*! @brief Answer quesion in private. @param questionID question id. @param content question content. @param destUserID destination userId. @return successs or not. @warning Only meeting host/co-host/panelist can run the function. */ - (BOOL)answerQuestionPrivate:(nonnull NSString *)questionID answerContent:(nonnull NSString *)answerContent; /*! @brief Answer Quesion. @param questionID question id. @param content question content. @return successs or not. @warning Only meeting host/co-host/panelist can run the function. */ - (BOOL)answerQuestionPublic:(nonnull NSString *)questionID answerContent:(nonnull NSString *)answerContent; /*! @brief Attendee comment Quesion. @param questionID question id. @param commentContent comment content. @return successs or not. @warning Only meeting attendee can run the function. */ - (BOOL)commentQuestion:(nonnull NSString *)questionID commentContent:(nonnull NSString *)commentContent; /*! @brief Dismiss Quesion. @param questionID question id. @return successs or not. @warning Only meeting host/co-host/panelist can run the function. */ - (BOOL)dismissQuestion:(nonnull NSString *)questionID; /*! @brief Reopen Quesion. @param questionID question id. @return successs or not. @warning Only meeting host/co-host/panelist can run the function. */ - (BOOL)reopenQuestion:(nonnull NSString *)questionID; /*! @brief Vote up Quesion. @param questionID question id. @return successs or not. @warning Only meeting host/co-host/panelist can run the function. */ - (BOOL)voteupQuestion:(nonnull NSString *)questionID voteup:(BOOL)voteup; /*! @brief startLiving Quesion. @param questionID question id. @return successs or not. @warning Only meeting host/co-host/panelist can run the function. */ - (BOOL)startLiving:(nonnull NSString *)questionID; /*! @brief endLiving Quesion. @param questionID question id. @return successs or not. @warning Only meeting host/co-host/panelist can run the function. */ - (BOOL)endLiving:(nonnull NSString *)questionID; /*! @brief delete Quesion. @param questionID question id. @return successs or not. @warning Only meeting host/co-host/panelist can run the function. */ - (BOOL)deleteQuestion:(nonnull NSString *)questionID; /*! @brief delete answerID. @param answerID answerID id. @return successs or not. @warning Only meeting host/co-host/panelist can run the function. */ - (BOOL)deleteAnswer:(nonnull NSString *)answerID; /*! @brief Is QA legal notice available. @return available or not. */ - (BOOL)isQALegalNoticeAvailable; /*! @brief Get QA legal notices prompt. @return QA legal notices prompt. */ - (NSString *_Nullable)getQALegalNoticesPrompt; /*! @brief Get QA legal notices explained. @return QA legal notices explained. */ - (NSString *_Nullable)getQALegalNoticesExplained; /*! @brief Get poll legal notices prompt. @return poll legal notices prompt. */ - (NSString *_Nullable)getPollLegalNoticesPrompt; /*! @brief is polling legal notice available. @return available or not. */ - (BOOL)isPollingLegalNoticeAvailable; /*! @brief Get poll legal notices explained. @return poll legal notices explained. */ - (NSString *_Nullable)getPollLegalNoticesExplained; /*! @brief Get poll anonymous legal notices explained. @return poll anonymous legal notices explained. */ - (NSString *_Nullable)getPollAnonymousLegalNoticesExplained; @end