//
//  WATrackProxy.h
//  WASdkIntfUI
//
//  Created by WA-T-01 on 16/3/1.
//  Copyright 漏 2016骞� WA-T-01. All rights reserved.
//

#import <Foundation/Foundation.h>

//鏁版嵁绫诲瀷
typedef enum WAParameterType{
    WAParameterTypeString,
    WAParameterTypeInt,
    WAParameterTypeDouble,
    WAParameterTypeBool,
    WAParameterTypeEnumThree,
    WAParameterTypeData
}WAParameterType;

//鏀粯绫诲瀷
//typedef enum WAEnumPaymentType{
//    WAEnumPaymentTypeGoogle,
//    WAEnumPaymentTypeApple,
//    WAEnumPaymentTypeFree
//}WAEnumPaymentType;

//鎬у埆
typedef enum WAEnumGender{
    WAEnumGenderFemale,
    WAEnumGenderMale,
    WAEnumGenderUnknown
}WAEnumGender;

//levelType
typedef enum WALevelType{
    // Highest level reached
    WALevelTypeHighestLevelReached  = 1,
    // Current area level reached
    WALevelTypeCurrentArea  = 2,
    // Current character level reached
    WALevelTypeCharacterLevel  = 3,
    // Other sequential level reached
    WALevelTypeOtherSequential   = 4,
    // Current non sequential level reached
    WALevelTypeOtherNonsequential = 5
    
} WALevelType;




extern NSString* WAEventParameterNameCustomMethodPrefix;//鑷畾涔変簨浠跺悕绉板墠缂€


extern NSString* WAEventParameterNameApplePayLogCustomPrefix;//鑻规灉鏀粯鑷畾涔変簨浠跺悕绉板墠缂€


extern NSString *const WAEventLaunch;
extern NSString *const WAEventStartUp;
extern NSString *const WAEventCompleteRegistration;
extern NSString *const WAEventLogin;
extern NSString *const WAEventInitiatedPayment;
extern NSString *const WAEventPayment;
extern NSString *const WAEventInitiatedPurchase;
extern NSString *const WAEventPurchase;
extern NSString *const WAEventLevelAchieved;
extern NSString *const WAEventAddToCart;
extern NSString *const WAEventAddToWishlist;
extern NSString *const WAEventSearch;
extern NSString *const WAEventSpentCredits;
extern NSString *const WAEventAchievementUnlocked;
extern NSString *const WAEventContentView;
extern NSString *const WAEventShare;
extern NSString *const WAEventInvite;
extern NSString *const WAEventReEngage;
extern NSString *const WAEventUpdate;
extern NSString *const WAEventOpenedFromPushNotification;
extern NSString *const WAEventUserInfoUpdate;
extern NSString *const WAEventUserCreate;
extern NSString *const WAEventTaskUpdate;
extern NSString *const WAEventGoldUpdate;
extern NSString *const WAEventUserImport;
extern NSString *const WAEventSession;

extern NSString *const WAEventAFTrackingInit;

extern NSString *const WAEventInitiatedLoginWay; // 鑾峰彇鐧诲綍鏂瑰紡涔嬪墠
extern NSString *const WAEventPostLoginWay; // 鑾峰彇鐧诲綍鏂瑰紡涔嬪悗
extern NSString *const WAEventInitiatedPlatformLogin; // 杩涜鐧诲綍涔嬪墠
extern NSString *const WAEventPostThirdPartyLogin; // 杩涜绗笁鏂规笭閬撶櫥褰曚箣鍚�
extern NSString *const WAEventPostWingLogin; // 杩涜WING骞冲彴鐧诲綍涔嬪悗


//鑻规灉鏀粯浜嬩欢涓婃姤鎵撶偣浜嬩欢鍚�20200302
extern NSString *const WAEventForHandTransaction; 	  		//鎵嬪姩娑堣€椾簨浠�
extern NSString *const WAEventForApplePayStateChanged;		 //鑻规灉鏀粯鐘舵€佹敼鍙�
extern NSString *const WAEventForOrderCheckNoTransaction;    //涓嬪崟妫€娴嬫湭娑堣€椾簨浠�




extern NSString *const WAEventParameterNameRegistrationMethod;

extern NSString *const WAEventParameterNameCurrencyType;
extern NSString *const WAEventParameterNamePrice;
extern NSString *const WAEventParameterNameContentType;
extern NSString *const WAEventParameterNameContentID;
extern NSString *const WAEventParameterNameQuantity;
extern NSString *const WAEventParameterNameSearchString;
extern NSString *const WAEventParameterNameSuccess ;
extern NSString *const WAEventParameterNameMaxRatingValue;
extern NSString *const WAEventParameterNamePaymentInfoAvailable;
extern NSString *const WAEventParameterNameItemAmount;
extern NSString *const WAEventParameterNameItemName;//閬撳叿鍚嶇О
extern NSString *const WAEventParameterNameItemId;
extern NSString *const WAEventParameterNameLevel ;
extern NSString *const WAEventParameterNameLevelInfo;
extern NSString *const WAEventParameterNameLevelType;
extern NSString *const WAEventParameterNameScore;
extern NSString *const WAEventParameterNameDescription ;

extern NSString *const WAEventParameterNameGender;
extern NSString *const WAEventParameterNameAge;
extern NSString *const WAEventParameterNameAccountType;
extern NSString *const WAEventParameterNameDeviceId;
extern NSString *const WAEventParameterNameIDFA;
extern NSString *const WAEventParameterNameServerId;

extern NSString *const WAEventParameterNameStartTime;
extern NSString *const WAEventParameterNameNowTime;
extern NSString *const WAEventParameterNameSessionType;
extern NSString *const WAEventParameterUnAdult;

extern NSString *const WAEventParameterNameTransactionId;
extern NSString *const WAEventParameterNamePaymentType;
extern NSString *const WAEventParameterNameCurrencyAmount;
extern NSString *const WAEventParameterNameVirtualCoinAmount;
extern NSString *const WAEventParameterNameVirtualCurrency;
extern NSString *const WAEventParameterNameIAPName;
extern NSString *const WAEventParameterNamePaymentType;
extern NSString *const WAEventParameterNameIAPAmount;
extern NSString *const WAEventParameterNameIAPId;
extern NSString *const WAEventParameterNameReceipt;
extern NSString *const WAEventParameterNameProductIdentifier;
extern NSString *const WAEventParameterNameRevenue;

extern NSString *const WAEventParameterNameIsFirstEnter;

extern NSString *const WAEventParameterNameTZ;//鏃跺尯
extern NSString *const WAEventParameterNameDevice;//璁惧
extern NSString *const WAEventParameterNameProduct;//璁惧浜у搧
extern NSString *const WAEventParameterNameModel;//璁惧鐗堟湰
extern NSString *const WAEventParameterNameDeviceType;//绫诲瀷
extern NSString *const WAEventParameterNameDeviceBrand;//鍝佺墝
extern NSString *const WAEventParameterNameOP;//杩愯惀鍟�
extern NSString *const WAEventParameterNameNetwork;//缃戠粶鍒跺紡
extern NSString *const WAEventParameterNameOS;//绯荤粺
extern NSString *const WAEventParameterNameResolution;//鍒嗚鲸鐜�




extern NSString *const WAEventParameterNameOsign;

//鍒涘缓瑙掕壊
extern NSString *const WAEventParameterNameRegisterTime;//娉ㄥ唽鏃堕棿

//鐜╁浠诲姟缁熻
extern NSString *const WAEventParameterNameTaskId;//浠诲姟id
extern NSString *const WAEventParameterNameTaskName;//浠诲姟鍚嶇О
extern NSString *const WAEventParameterNameTaskType;//浠诲姟绫诲瀷
extern NSString *const WAEventParameterNameTaskStatus;//浠诲姟鐘舵€�


//鐢ㄦ埛璧勬枡鏇存柊
extern NSString *const WAEventParameterNameNickName;//瑙掕壊鍚嶇О
extern NSString *const WAEventParameterNameVip;//vip绛夌骇
extern NSString *const WAEventParameterNameStatus;//鐘舵€�
extern NSString *const WAEventParameterNameGameUserId;//娓告垙瑙掕壊Id
extern NSString *const WAEventParameterNameBindGameGold;//缁戝畾閽荤煶
extern NSString *const WAEventParameterNameGameGold;//鐢ㄦ埛閽荤煶鏁�
extern NSString *const WAEventParameterNameFighting;//鎴樻枟鍔�
extern NSString *const WAEventParameterNameRoleType;

//璐у竵鐘跺喌鍙樻洿
extern NSString *const WAEventParameterNameGoldType;//璐у竵绫诲瀷
extern NSString *const WAEventParameterNameApproach;//鍙樻洿閫斿緞
extern NSString *const WAEventParameterNameCurrentAmount;//褰撳墠璐у竵鏁伴噺
extern NSString *const WAEventParameterNameAmount;//鍙樻洿璐у竵鏁�

// 鑾峰彇鐧诲綍鏂瑰紡涔嬪悗
extern NSString *const WAEventParameterNameLoginWayCount; // 鐧诲綍鏂瑰紡涓暟
extern NSString *const WAEventShowLoginWindow;    //鎵撳紑鐧诲綍妗�



// 杩涜鐧诲綍涔嬪墠銆佽繘琛岀涓夋柟娓犻亾鐧诲綍涔嬪悗銆佽繘琛學ING骞冲彴鐧诲綍涔嬪悗
extern NSString *const WAEventParameterNamePlatformName; // 鐧诲綍娓犻亾鍚嶇О
extern NSString *const WAEventParameterNameLoginStatus; //  鐧诲綍鐘舵€�

//鏀粯绫诲瀷
extern NSString *const WAValueForPaymentTypeApple;
extern NSString *const WAValueForPaymentTypeGoogle;
extern NSString *const WAValueForPaymentTypeFree;






/*!
 @discussion WATrackProxy 璇ョ被鐢ㄦ潵鍋氭暟鎹敹闆�
 - - -
 */
@interface WATrackProxy : NSObject
/*!
 @discussion 璇ユ柟娉曠敤鏉ュ彂閫佹暟鎹埌鍚勪釜娓犻亾
 @param eventName 浜嬩欢鍚嶇О
 @param value 绱姞鍊�
 @param params 鍙傛暟
 */
+(void)trackWithEventName:(NSString *const)eventName valueToSum:(double)value params:(NSDictionary*)params;
/*!
 @discussion 璇ユ柟娉曠敤鏉ュ彂閫佹暟鎹埌鎸囧畾娓犻亾
 @param eventName 浜嬩欢鍚嶇О
 @param value 绱姞鍊�
 @param params 鍙傛暟
 @param platform 娓犻亾
 */
+(void)trackWithEventName:(NSString *const)eventName valueToSum:(double)value params:(NSDictionary*)params platform:(NSString *const)platform;
/*!
 @abstract 鑾峰彇collectionInfo
 */
+(NSString*)getCollectionInfo;

/*!
 @discussion 璁剧疆鐐瑰嚮鍏呭€间簨浠�(WAEventInitiatedPayment)鍜屽厖鍊煎畬鎴愪簨浠�(WAEventPayment)鏄惁鑷姩缁熻,榛樿涓鸿嚜鍔ㄧ粺璁�
 @param isAuto 鏄惁鑷姩缁熻浜嬩欢
 */

+(void)autoTriggerAfterPayment:(BOOL)isAuto;
+(BOOL)getAutoTriggerAfterPayment;
+(void)checkParams:(NSDictionary*)params eventName:(NSString*)eventName;
@end