86 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
		
		
			
		
	
	
			86 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			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
							 |