8
8
import Foundation
9
9
import Sovran
10
10
11
+ // MARK: - Supplementary Types
12
+
13
+ public struct DestinationMetadata : Codable {
14
+ var bundled : [ String ] = [ ]
15
+ var unbundled : [ String ] = [ ]
16
+ var bundledIds : [ String ] = [ ]
17
+ }
11
18
12
19
// MARK: - Event Types
13
20
14
21
public protocol RawEvent : Codable {
15
-
16
22
var type : String ? { get set }
17
23
var anonymousId : String ? { get set }
18
24
var messageId : String ? { get set }
@@ -22,6 +28,7 @@ public protocol RawEvent: Codable {
22
28
var context : JSON ? { get set }
23
29
var integrations : JSON ? { get set }
24
30
var metrics : [ JSON ] ? { get set }
31
+ var _metadata : DestinationMetadata ? { get set }
25
32
}
26
33
27
34
public struct TrackEvent : RawEvent {
@@ -33,6 +40,7 @@ public struct TrackEvent: RawEvent {
33
40
public var context : JSON ? = nil
34
41
public var integrations : JSON ? = nil
35
42
public var metrics : [ JSON ] ? = nil
43
+ public var _metadata : DestinationMetadata ? = nil
36
44
37
45
public var event : String
38
46
public var properties : JSON ?
@@ -57,9 +65,11 @@ public struct IdentifyEvent: RawEvent {
57
65
public var context : JSON ? = nil
58
66
public var integrations : JSON ? = nil
59
67
public var metrics : [ JSON ] ? = nil
68
+ public var _metadata : DestinationMetadata ? = nil
60
69
61
70
public var traits : JSON ?
62
71
72
+
63
73
public init ( userId: String ? = nil , traits: JSON ? = nil ) {
64
74
self . userId = userId
65
75
self . traits = traits
@@ -80,6 +90,7 @@ public struct ScreenEvent: RawEvent {
80
90
public var context : JSON ? = nil
81
91
public var integrations : JSON ? = nil
82
92
public var metrics : [ JSON ] ? = nil
93
+ public var _metadata : DestinationMetadata ? = nil
83
94
84
95
public var name : String ?
85
96
public var category : String ?
@@ -106,6 +117,7 @@ public struct GroupEvent: RawEvent {
106
117
public var context : JSON ? = nil
107
118
public var integrations : JSON ? = nil
108
119
public var metrics : [ JSON ] ? = nil
120
+ public var _metadata : DestinationMetadata ? = nil
109
121
110
122
public var groupId : String ?
111
123
public var traits : JSON ?
@@ -129,6 +141,7 @@ public struct AliasEvent: RawEvent {
129
141
public var context : JSON ? = nil
130
142
public var integrations : JSON ? = nil
131
143
public var metrics : [ JSON ] ? = nil
144
+ public var _metadata : DestinationMetadata ? = nil
132
145
133
146
public var userId : String ?
134
147
public var previousId : String ?
@@ -271,6 +284,7 @@ extension RawEvent {
271
284
timestamp = e. timestamp
272
285
context = e. context
273
286
integrations = e. integrations
287
+ _metadata = e. _metadata
274
288
}
275
289
}
276
290
@@ -284,6 +298,7 @@ extension RawEvent {
284
298
result. messageId = UUID ( ) . uuidString
285
299
result. timestamp = Date ( ) . iso8601 ( )
286
300
result. integrations = try ? JSON ( [ String: Any] ( ) )
301
+ result. _metadata = DestinationMetadata ( )
287
302
288
303
return result
289
304
}
0 commit comments