2023-04-03 11:04:31 +08:00

70 lines
2.3 KiB
Objective-C

#import "TDEventModel.h"
#import "ThinkingAnalyticsSDKPrivate.h"
kEDEventTypeName const TD_EVENT_TYPE_TRACK_FIRST = @"track_first";
kEDEventTypeName const TD_EVENT_TYPE_TRACK_UPDATE = @"track_update";
kEDEventTypeName const TD_EVENT_TYPE_TRACK_OVERWRITE = @"track_overwrite";
@interface TDEventModel ()
@property (nonatomic, copy) NSString *eventName;
@property (nonatomic, copy) kEDEventTypeName eventType;
@end
@implementation TDEventModel
- (instancetype)initWithEventName:(NSString *)eventName {
return [self initWithEventName:eventName eventType:TD_EVENT_TYPE_TRACK];
}
- (instancetype)initWithEventName:(NSString *)eventName eventType:(kEDEventTypeName)eventType {
if (self = [[[TDEventModel class] alloc] init]) {
self.persist = YES;
self.eventName = eventName ?: @"";
self.eventType = eventType ?: @"";
if ([self.eventType isEqualToString:TD_EVENT_TYPE_TRACK_FIRST]) {
_extraID = [TDDeviceInfo sharedManager].deviceId ?: @"";
}
}
return self;
}
#pragma mark - Public
- (void)configTime:(NSDate *)time timeZone:(NSTimeZone *)timeZone {
if (!time || ![time isKindOfClass:[NSDate class]]) {
self.timeValueType = TDTimeValueTypeNone;
} else {
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
timeFormatter.dateFormat = kDefaultTimeFormat;
timeFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
timeFormatter.calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
if (timeZone && [timeZone isKindOfClass:[NSTimeZone class]]) {
self.timeValueType = TDTimeValueTypeAll;
timeFormatter.timeZone = timeZone;
} else {
self.timeValueType = TDTimeValueTypeTimeOnly;
timeFormatter.timeZone = [NSTimeZone localTimeZone];
}
self.timeString = [timeFormatter stringFromDate:time];
}
}
#pragma mark - Setter
- (void)setExtraID:(NSString *)extraID {
if (extraID.length > 0) {
_extraID = extraID;
} else {
if ([self.eventType isEqualToString:TD_EVENT_TYPE_TRACK_FIRST]) {
TDLogError(@"Invalid firstCheckId. Use device Id");
} else {
TDLogError(@"Invalid eventId");
}
}
}
@end