lpw
2022-03-11 10792d757f561de30e68eac0b79b38a85e3ca15a
commit | author | age
10792d 1 //
L 2 //  AIHelpSDKConfig
3 //
4 //  Created by AIHelp.
5 //  Copyright © 2020 aihelp.net. All rights reserved.
6 //
7
8 #import <Foundation/Foundation.h>
9
10 typedef NS_ENUM(int,AIHelpTokenPlatform) {                    /* PushTokenPlatform enum*/
11     AIHelpTokenPlatformAPNS               = 1,                // Apple APNS
12     AIHelpTokenPlatformFirebase           = 2,                // firebase-FCM
13     AIHelpTokenPlatformJpush              = 3,                // Jpush
14     AIHelpTokenPlatformGeTui              = 4,                // GeTui
15 };
16
17 typedef NS_ENUM(int,AIHelpConversationIntent) {                    /* ConversationIntent enum */
18     AIHelpConversationIntentBotSupport         = 1,                // ShowBot
19     AIHelpConversationIntentHumanSupport       = 2,                // ShowHumanSupport
20 };
21
22 typedef NS_ENUM(int,AIHelpFAQShowConversationMoment) {             /* ConversationMoment enum, show ContactUs moment */
23     AIHelpFAQShowConversationMomentNever            = 1,           // Never show
24     AIHelpFAQShowConversationMomentAlways           = 2,           // Always show
25     AIHelpFAQShowConversationMomentAfterMarkingUnhelpful = 3,      // Show after unhelpful with Faq detail
26     AIHelpFAQShowConversationMomentOnlyInAnswerPage = 4,           // only in answer page show
27 };
28
29 typedef NS_ENUM(int,AIHelpPublishCountryOrRegion) {
30     AIHelpCN = 1,
31     AIHelpIN
32 };
33
34 #pragma mark - ECServiceUserConfig
35
36 @interface AIHelpUserConfig : NSObject
37 - (id) init NS_UNAVAILABLE;
38 @end
39
40 @interface AIHelpUserConfigBuilder : NSObject
41 @property (nonatomic, copy)NSString       *userId;        // default is unique deviceId
42 @property (nonatomic, copy)NSString       *userName;      // default is "anonymous"
43 @property (nonatomic, copy)NSString       *serverId;      // default is nil
44 @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.
45 @property (nonatomic, strong)NSDictionary   *customData;    // Set custom meta data you want to see in the aihelp admin dashboard.
46 @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.
47 @property(nonatomic,copy)NSString *pushToken;
48 @property(nonatomic,assign)AIHelpTokenPlatform pushPlatform;
49 - (AIHelpUserConfig *)build;
50 @end
51
52
53 #pragma mark - ECServiceConversationConfig
54
55 @interface AIHelpConversationConfig : NSObject
56 - (id) init NS_UNAVAILABLE;
57 @end
58
59 @interface AIHelpConversationConfigBuilder : NSObject
60 @property (nonatomic, assign)AIHelpConversationIntent conversationIntent;    // show elva bot page or show conversation page
61 @property (nonatomic, assign)BOOL alwaysShowHumanSupportButtonInBotPage;         // default is NO.if you set ture,user can always see the contact us button
62 @property (nonatomic, copy)NSString *welcomeMessage;           // default is http://aihelp.net/dashboard setting. you can show different welcome msg by different users with this param, It has a higher priority.
63 @property (nonatomic, copy)NSString *storyNode;                   // set specific story node for specific scene. With this api call, you can show different stories in different scenes. the story node's User Say content you configured in aihelp admin dashboard.(http://aihelp.net/dashboard)
64 - (AIHelpConversationConfig *)build;
65 @end
66
67
68 #pragma mark - ECServiceFAQConfig
69
70 @interface AIHelpFAQConfig : NSObject
71 - (id) init NS_UNAVAILABLE;
72 @end
73
74 @interface AIHelpFAQConfigBuilder : NSObject
75 @property (nonatomic, assign)AIHelpFAQShowConversationMoment showConversationMoment;      // see enum -> ElvaFAQShowConversationMoment
76 @property (nonatomic, strong)AIHelpConversationConfig *conversationConfig;           // see config -> ECServiceConversationConfig
77 - (AIHelpFAQConfig *)build;
78 @end
79
80
81 #pragma mark - ECServiceOperationConfig
82
83 @interface AIHelpOperationConfig : NSObject
84 - (id) init NS_UNAVAILABLE;
85 @end
86
87 @interface AIHelpOperationConfigBuilder : NSObject
88 @property (nonatomic, assign)int selectIndex;                                  // default is elva tab.  If you set a negative index, or index larger than the total tab counts, the selected tab will still be elva.
89 @property (nonatomic, copy)NSString *conversationTitle;                        // default is "HELP", you can change the operation conversation bot title
90 @property (nonatomic, strong)AIHelpConversationConfig *conversationConfig;            // see config -> ECServiceConversationConfig
91 - (AIHelpOperationConfig *)build;
92 @end