// // AIHelpSDKConfig // // Created by AIHelp. // Copyright © 2020 aihelp.net. All rights reserved. // #import typedef NS_ENUM(int,AIHelpTokenPlatform) { /* PushTokenPlatform enum*/ AIHelpTokenPlatformAPNS = 1, // Apple APNS AIHelpTokenPlatformFirebase = 2, // firebase-FCM AIHelpTokenPlatformJpush = 3, // Jpush AIHelpTokenPlatformGeTui = 4, // GeTui AIHelpTokenPlatformHUAWEI = 6, // HUAWEI AIHelpTokenPlatformOneSignal = 7, // OneSignal }; typedef NS_ENUM(int,AIHelpFAQShowConversationMoment) { /* ConversationMoment enum, show ContactUs moment */ AIHelpFAQShowConversationMomentNever = 1, // Never show AIHelpFAQShowConversationMomentAlways = 2, // Always show AIHelpFAQShowConversationMomentAfterMarkingUnhelpful = 3, // Show after unhelpful with Faq detail AIHelpFAQShowConversationMomentOnlyInAnswerPage = 4, // only in answer page show }; typedef NS_ENUM(int,AIHelpPublishCountryOrRegion) { AIHelpCN = 1, AIHelpIN }; typedef NS_ENUM(int, AIHelpFAQSupportEntrance) { AIHelpFAQSupportEntranceHomePage = 1, AIHelpFAQSupportEntranceQuestionList = 2, AIHelpFAQSupportEntranceAnswerPage = 3, AIHelpFAQSupportEntranceAfterMarkingUnhelpful = 4, AIHelpFAQSupportEntranceFAQNotFound = 5, }; typedef NS_ENUM(int, AIHelpLoginStatus) { AIHelpLoginSuccess = 1, AIHelpInvalidUID = -1, AIHelpAuthError = -2, }; typedef NS_ENUM(int, AIHelpEventType) { AIHelpEventInitialization, // Event for SDK initialization AIHelpEventUserLogin, // Event for user login AIHelpEventEnterpriseAuth, // Event for enterprise authentication AIHelpEventSessionOpen, // Event for opening a session (window) AIHelpEventSessionClose, // Event for closing a session (window) AIHelpEventMessageArrival, // Event for message arrival AIHelpEventLogUpload, // Event for log upload AIHelpEventUrlClick, // Event for URL click AIHelpEventUnreadTaskCount, // Event for Task unread count AIHelpEventConversationStart, // Event for conversation start }; typedef void (*AISupportAsyncEventListener)(const char *jsonEventData, void (*acknowledge)(const char *jsonAckData)); #pragma mark - ECServiceUserConfig @interface AIHelpUserConfig : NSObject - (id) init NS_UNAVAILABLE; @end @interface AIHelpUserConfigBuilder : NSObject @property (nonatomic, copy)NSString *userName; // default is "anonymous" @property (nonatomic, copy)NSString *serverId; // default is nil @property (nonatomic, strong)NSArray *userTags; // If you assign this field with existing tags from aihelp admin dashboard, the tickets created by current user will take these tags by default. @property (nonatomic, strong)NSDictionary *customData; // Set custom meta data you want to see in the aihelp admin dashboard. @property (nonatomic, assign)BOOL isSyncCrmInfo; // If you set this to true, when you update current user's information, the sdk will sync user's information to you crm database. - (AIHelpUserConfig *)build; @end #pragma mark - AIHelpApiConfig @interface AIHelpApiConfig : NSObject - (id) init NS_UNAVAILABLE; @end @interface AIHelpApiConfigBuilder : NSObject @property (nonatomic, copy)NSString *entranceId; @property (nonatomic, copy)NSString *welcomeMessage; - (AIHelpApiConfig *)build; @end #pragma mark - AIHelpLoginConfig @interface AIHelpLoginConfig : NSObject - (id) init NS_UNAVAILABLE; @end @interface AIHelpLoginConfigBuilder : NSObject @property (nonatomic, copy) NSString *userId; @property (nonatomic, assign) BOOL isEnterpriseAuth; @property (nonatomic, strong) AIHelpUserConfig *userConfig; - (AIHelpLoginConfig *)build; @end