86 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
| //
 | |
| //  TDBaseEvent.h
 | |
| //  ThinkingSDK
 | |
| //
 | |
| //  Created by Yangxiongon 2022/6/12.
 | |
| //
 | |
| 
 | |
| #import <Foundation/Foundation.h>
 | |
| #import "TDPropertyValidator.h"
 | |
| 
 | |
| NS_ASSUME_NONNULL_BEGIN
 | |
| 
 | |
| typedef NSString * kTDEventType;
 | |
| 
 | |
| typedef NS_OPTIONS(NSUInteger, TDEventType) {
 | |
|     TDEventTypeNone = 0,
 | |
|     TDEventTypeTrack = 1 << 0,
 | |
|     TDEventTypeTrackFirst = 1 << 1,
 | |
|     TDEventTypeTrackUpdate = 1 << 2,
 | |
|     TDEventTypeTrackOverwrite = 1 << 3,
 | |
|     TDEventTypeUserSet = 1 << 4,
 | |
|     TDEventTypeUserUnset = 1 << 5,
 | |
|     TDEventTypeUserAdd = 1 << 6,
 | |
|     TDEventTypeUserDel = 1 << 7,
 | |
|     TDEventTypeUserSetOnce = 1 << 8,
 | |
|     TDEventTypeUserAppend = 1 << 9,
 | |
|     TDEventTypeUserUniqueAppend = 1 << 10,
 | |
|     TDEventTypeAll = 0xFFFFFFFF,
 | |
| };
 | |
| 
 | |
| FOUNDATION_EXTERN NSString * const TD_BACKGROUND_DURATION;
 | |
| 
 | |
| typedef NSString *kEDEventTypeName;
 | |
| 
 | |
| FOUNDATION_EXTERN kEDEventTypeName const TD_EVENT_TYPE_TRACK;
 | |
| FOUNDATION_EXTERN kEDEventTypeName const TD_EVENT_TYPE_USER_DEL;
 | |
| FOUNDATION_EXTERN kEDEventTypeName const TD_EVENT_TYPE_USER_ADD;
 | |
| FOUNDATION_EXTERN kEDEventTypeName const TD_EVENT_TYPE_USER_SET;
 | |
| FOUNDATION_EXTERN kEDEventTypeName const TD_EVENT_TYPE_USER_SETONCE;
 | |
| FOUNDATION_EXTERN kEDEventTypeName const TD_EVENT_TYPE_USER_UNSET;
 | |
| FOUNDATION_EXTERN kEDEventTypeName const TD_EVENT_TYPE_USER_APPEND;
 | |
| FOUNDATION_EXTERN kEDEventTypeName const TD_EVENT_TYPE_USER_UNIQ_APPEND;
 | |
| 
 | |
| typedef NS_OPTIONS(NSInteger, TDEventTimeValueType) {
 | |
|     TDEventTimeValueTypeNone = 0,
 | |
|     TDEventTimeValueTypeTimeOnly = 1 << 0,
 | |
|     TDEventTimeValueTypeTimeAndZone = 1 << 1,
 | |
| };
 | |
| 
 | |
| @interface TDBaseEvent : NSObject<TDEventPropertyValidating>
 | |
| @property (nonatomic, assign) TDEventType eventType;
 | |
| @property (nonatomic, copy) NSString *uuid;
 | |
| @property (nonatomic, copy) NSString *accountId;
 | |
| @property (nonatomic, copy) NSString *distinctId;
 | |
| @property (nonatomic, strong) NSDate *time;
 | |
| @property (nonatomic, strong) NSTimeZone *timeZone;
 | |
| @property (nonatomic, strong, readonly) NSDateFormatter *timeFormatter;
 | |
| 
 | |
| @property (nonatomic, assign) TDEventTimeValueType timeValueType;
 | |
| @property (nonatomic, strong) NSMutableDictionary *properties;
 | |
| 
 | |
| @property (nonatomic, assign) BOOL immediately;
 | |
| @property (nonatomic, assign) BOOL isDebug;
 | |
| 
 | |
| @property (atomic, assign, getter=isTrackPause) BOOL trackPause;
 | |
| 
 | |
| @property (nonatomic, assign) BOOL isEnabled;
 | |
| 
 | |
| @property (atomic, assign) BOOL isOptOut;
 | |
| 
 | |
| - (instancetype)initWithType:(TDEventType)type;
 | |
| 
 | |
| - (void)validateWithError:(NSError **)error;
 | |
| 
 | |
| - (NSMutableDictionary *)jsonObject;
 | |
| 
 | |
| - (NSMutableDictionary *)formatDateWithDict:(NSDictionary *)dict;
 | |
| 
 | |
| - (NSString *)eventTypeString;
 | |
| 
 | |
| + (TDEventType)typeWithTypeString:(NSString *)typeString;
 | |
| 
 | |
| @end
 | |
| 
 | |
| NS_ASSUME_NONNULL_END
 |