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
|